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

Terraform生成重复Route53 DNS验证记录问题求助

问题根因

你为ACM证书同时配置了根域名、www域名两个备用名称(SAN),AWS ACM针对同属一个Route53托管区的两个域名,返回了完全相同的CNAME验证记录,因此aws_acm_certificate.ssl_certificate.domain_validation_options列表中存在两条重复条目,直接用length计算count就会尝试创建两条完全相同的Route53记录,触发AWS接口的冲突报错。

修复方案

推荐使用for_each替代count实现验证记录天然去重,同时避免后续域名变更导致的资源意外重建,修改后代码如下:

  1. 先定义本地值对验证记录做去重:
locals {
  // 以验证记录名为key构建map,天然过滤重复的验证记录
  cert_validation_entries = {
    for opt in aws_acm_certificate.ssl_certificate.domain_validation_options :
    opt.resource_record_name => opt
  }
}
  1. 修改cert-validations资源配置:
resource "aws_route53_record" "cert-validations" {
  for_each = local.cert_validation_entries

  zone_id = aws_route53_zone.main.zone_id
  name    = each.value.resource_record_name
  type    = each.value.resource_record_type
  records = [each.value.resource_record_value]
  ttl     = 60
}

该方案会自动过滤重复的验证记录,无需手动硬编码count值,适配后续新增域名的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:24:05