Как вы устанавливаете версию java при создании функционального приложения Azure с использованием Terraform?

#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"    
  }
  

документация site_config

Комментарии:

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"" . Это приведет к ожидаемому результату.