#java #terraform #terraform-provider-azure #azure-function-app #azure-functions-runtime
#java #terraform #terraform-provider-azure #azure-function-app #azure-функции-среда выполнения
Вопрос:
На портале Azure я могу установить версию Java следующим образом: изображение портала
В файле конфигурации terraform я могу установить версию функции Azure только с помощью:
resource "azurerm_function_app" "function-app" {
name = "test"
location = azurerm_resource_group.resource-group.location
resource_group_name = azurerm_resource_group.resource-group.name
app_service_plan_id = azurerm_app_service_plan.service-plan.id
storage_account_name = azurerm_storage_account.storage-account.name
storage_account_access_key = azurerm_storage_account.storage-account.primary_access_key
app_settings = {
FUNCTION_APP_EDIT_MODE = "readOnly"
WEBSITE_RUN_FROM_PACKAGE = 1
FUNCTIONS_EXTENSION_VERSION = 2
FUNCTIONS_WORKER_RUNTIME = "java"
SCM_DO_BUILD_DURING_DEPLOYMENT = false
}
}
При развертывании вышеуказанной конфигурации только среда выполнения установлена на java, но поскольку версия не установлена, мои развертывания не работают.
Результат в portal выглядит следующим образом: настройки стека Java
Комментарии:
1. У вас получилось это сделать? Я выполняю предложение, которое принято, но оно не работает. Поле по-прежнему пустое. Можете ли вы поделиться своей конфигурацией? Спасибо.
2. В настоящее время существует ошибка terraform, связанная с этим github.com/terraform-providers/terraform-provider-azurerm /…
Ответ №1:
Я не знаю, как был принят ответ Нэнси Сюн, потому что он не отвечает на вопрос, который конкретно касается установки версии java для функциональных приложений Azure в terraform. Вот как вы делаете это правильно:
site_config {
linux_fx_version = "JAVA|11"
}
Комментарии:
1. Привет, в то время, когда я добавлял вопрос, приведенный выше ответ решил мою проблему, следовательно, принял ответ.
2. @BalajiArumugam Я не знаю, какую версию поставщика azurerm вы использовали, но, следуя принятому ответу, версия java не устанавливается равной 11. вы можете сделать это только по ответу Rostos
Ответ №2:
С версией поставщика Azure >=v2.57.0
вы можете установить версию Java через site_config
свойство java_version
.
java_version — (необязательно) версия Java, размещенная функциональным приложением в Azure. Возможные значения 1.8, 11.
resource "azurerm_function_app" "function-app" {
// ..
site_config {
java_version = "11"
}
}
Комментарии:
1. Это должен быть способ сделать это, единственная проблема в том, что через 1 год после вашего поста все еще не работает. github.com/hashicorp/terraform-provider-azurerm/issues/17173
Ответ №3:
Вы могли бы использовать version
аргумент для установки версии среды выполнения, связанной с функциональным приложением. Смотрите Ссылку на аргумент.
Кроме того, из документов —Как настроить таргетинг на версии среды выполнения Azure Functions
Функциональное приложение выполняется в определенной версии среды выполнения Azure Functions. Существует три основные версии: 1.x, 2.x и 3.x. По умолчанию функциональные приложения создаются в версии 3.x среды выполнения.
В этом случае вы могли бы добавить аргумент version = "~3"
в resource "azurerm_function_app" "function-app""
. Это приведет к ожидаемому результату.