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

Terraform循环从复杂对象赋值创建Route53 NS记录报错求助

修正后的Terraform Route53 NS记录代码

原代码的循环语法不符合Terraform规范,要实现动态创建多实例NS记录,需使用for_each完成迭代。以下是修正后的完整代码:

resource "aws_route53_record" "erp_subdomain_dev_portalns_record" {
  for_each = { for subdomain in var.subdomain_list : subdomain.url => subdomain }

  allow_overwrite = true
  zone_id         = aws_route53_zone.primary.zone_id
  ttl             = 300
  type            = "NS"
  name            = each.value.url
  records         = each.value.nsrecords
}

关键修正说明

  • 用for_each实现资源迭代:将var.subdomain_list转换为以子域名url为键的映射,确保每个NS记录实例有唯一标识,避免资源冲突。
  • 简化属性引用:each.value代表当前迭代的子域名对象,直接提取url作为记录名称、nsrecords作为NS记录值——原代码中的嵌套列表循环完全多余,因为nsrecords本身就是符合要求的字符串列表。
  • 变量定义无需修改:你编写的vars.tf中变量类型、结构及默认值均正确,可直接保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:10:32