You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform部署Azure Function配置app_settings时报不支持块类型错误

问题产生原因

这个报错是HCL语法使用错误导致的:

  • Terraform HCL对两类配置的语法要求有明确区分:
    • 嵌套块:用于定义资源的结构化嵌套配置,写法为块名 { 配置内容 },不需要加等号,比如配置里的sku、site_config都属于这类合法嵌套块
    • 类型参数:用于传入字符串、数字、列表、键值对映射等值,必须使用参数名 = 值的格式完成赋值,不能省略等号直接接大括号
  • 在使用的azurerm v3.10.0版本的azurerm_function_app资源中,app_settings是接收键值对映射的类型参数,不是支持声明的嵌套块,使用块的写法编写app_settings { ... }不符合语法要求,就会触发该错误。
修复方法

只需要在app_settings字段名后补充等号,将块写法改为标准的map参数赋值写法即可,修正后的函数应用资源配置片段如下:

resource "azurerm_function_app" "example" {
  name                       = "test-azure-shafiq123"
  location                   = azurerm_resource_group.example.location
  resource_group_name        = azurerm_resource_group.example.name
  app_service_plan_id        = azurerm_app_service_plan.example.id
  storage_account_name       = azurerm_storage_account.example.name
  storage_account_access_key = azurerm_storage_account.example.primary_access_key
  os_type                    = "linux"
  version                    = "~4"

  # 修正:增加等号,使用参数赋值语法
  app_settings = {
    FUNCTIONS_WORKER_RUNTIME = "python"
    TESTING_KEY              = "TESTING_VALUE"
  }

  site_config {
    linux_fx_version = "python|3.9"
  }
}
  • 修改完成后可先执行terraform plan校验配置合法性、确认资源变更预期,校验通过后再执行terraform apply即可正常完成部署,不会再触发该报错。

内容的提问来源于stack exchange,提问作者Muhammad Shafiq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 23:51:15