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
相关产品推荐
相关产品推荐

