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

Terraform部署azurerm_lb时出现「参数不被预期」错误的技术咨询

解决Terraform Azure负载均衡器部署的「参数不被预期」错误

你遇到的问题核心是Terraform动态块(dynamic block)的语法使用错误——动态块内部的资源参数必须嵌套在content代码块中,而非直接作为dynamic块的同级配置项。Terraform把你写的name、subnet_id等参数当成了dynamic块本身的参数(而dynamic块仅支持for_each、iterator等少数参数),因此抛出了“不支持的参数”错误。

修正后的main.tf代码

resource "azurerm_lb" "lb" {
  for_each = { for lb in var.load_balancer : lb.lb_name => lb }

  name                = each.value.lb_name
  sku                 = each.value.sku
  location            = each.value.location
  resource_group_name = each.value.lb_resource_group_name

  dynamic "frontend_ip_configuration" {
    for_each = { for fip in each.value.frontend_ip_config : fip.frontend_ip_name => fip }

    # 关键修正:将所有前端IP配置参数放入content块中
    content {
      name                          = frontend_ip_configuration.value.frontend_ip_name
      subnet_id                     = data.azurerm_subnet.subnet[each.value.lb_name].id
      private_ip_address            = frontend_ip_configuration.value.private_ip_address
      private_ip_address_allocation = frontend_ip_configuration.value.private_ip_address == null ? "Dynamic" : "Static"
    }
  }
}

额外注意事项

  • 请确保data.azurerm_subnet.subnet的定义是正确的(你当前的代码中未展示该数据源,需确认它能通过each.value.lb_name正确索引到对应的子网ID)。
  • 你的变量定义variables.tf是合法的,无需修改。

内容的提问来源于stack exchange,提问作者Abhishek Solanki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 20:32:44