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

Terraform Incapsula资源配置报错:each.value无法使用求助

解决Terraform Incapsula资源中origin_server动态生成的each.value报错问题

你遇到的错误源于Terraform不支持直接在资源的嵌套块(如origin_server)内使用for_each,必须通过dynamic块语法来动态生成多个嵌套实例,才能正确引用each.value。

以下是修正后的完整代码:

variable "ip_addresses"{
  default = [
    "1.2.3.4", "2.3.4.5"
  ] 
}

resource "incapsula_data_centers_configuration" "single_dc" {
    site_id = incapsula_site.pre-site.id
    site_topology = var.site_topology
    site_lb_algorithm = "BEST_CONNECTION_TIME"
    fail_over_required_monitors = "MOST"
    is_persistent = true

    data_center {
      name = var.single_dc_name
      dc_lb_algorithm = "LB_LEAST_PENDING_REQUESTS" 

      # 用dynamic块动态生成对应数量的origin_server
      dynamic "origin_server" {
        for_each = toset(var.ip_addresses)
        content {
          address = origin_server.value
        }
      }
    }
}

关键改动说明:

  • 用dynamic "origin_server"替代固定的origin_server块,这是Terraform动态生成嵌套块的标准方式
  • 在dynamic块内声明for_each,遍历转换为集合类型的var.ip_addresses
  • 在content块内通过origin_server.value引用当前遍历的IP地址(此处的origin_server是dynamic块的自定义标签名,需和块名保持一致)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:05:04