使用Terraform创建Azure Function应用程序时如何设置Java版本?

问题描述

在Azure门户中,我可以如下设置Java版本: portal image

在terraform配置文件中,我只能使用以下命令设置Azure Function版本:

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,但是由于未设置版本,因此我的部署无法正常工作。

门户网站中的结果如下所示: java stack settings

解决方法

您可以使用version参数来设置与Function App相关的运行时版本。参见Argument Reference

enter image description here

此外,来自文档-How to target Azure Functions runtime versions

功能应用程序在特定版本的Azure Functions上运行 运行。有三个主要版本:1.x,2.x和3.x。通过 默认情况下,功能应用程序是在运行时版本3.x中创建的。

enter image description here

在这种情况下,您可以在version = "~3"下添加参数 resource "azurerm_function_app" "function-app""。它将得到您预期的结果。

,

我不知道Nancy Xiong的回答如何被接受,因为它没有回答问题,这特别是关于在Terraform中为Azure函数应用程序设置Java版本的问题。 这是您正确执行的方法:

site_config {
       linux_fx_version = "JAVA|11"    
  }

site_config文档

,

使用 Azure Provider 版本 >=v2.57.0,您可以通过 site_config 属性 java_version 设置 Java 版本。

java_version -(可选)由 Azure 中的函数应用托管的 Java 版本。可能的值为 1.8、11。

resource "azurerm_function_app" "function-app" {
  // ..

  site_config {
    java_version = "11"
  }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...