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

Terraform中无法访问ACM证书的domain_validation_options属性

问题解决:Terraform读取ACM证书时无法访问domain_validation_options

问题根源

你用data "aws_acm_certificate"读取已有证书时,这个数据源默认不会导出domain_validation_options属性,必须显式开启对应配置项才能获取到这些验证相关字段。

修复步骤

在你的ACM证书数据源配置里,添加include_domain_validation_options = true即可:

data "aws_acm_certificate" "my_app" {
  domain   = "*.foobar.com"
  statuses = ["ISSUED"]
  # 开启后才能获取域名验证选项数据
  include_domain_validation_options = true
}

resource "aws_route53_record" "cert_validation" {
  allow_overwrite = true
  name            = tolist(data.aws_acm_certificate.my_app.domain_validation_options)[0].resource_record_name
  records         = [tolist(data.aws_acm_certificate.my_app.domain_validation_options)[0].resource_record_value]
  type            = tolist(data.aws_acm_certificate.my_app.domain_validation_options)[0].resource_record_type
  zone_id         = aws_route53_zone.public.id
  ttl             = 60
}

补充说明

关于data和resource的区别:

  • resource块用来创建、修改或销毁AWS资源,由Terraform完全管理资源生命周期。
  • data块仅读取已存在的资源状态,不会对资源本身做任何修改,你这里用它读取已有ACM证书的思路是对的,只是漏了数据源的必要配置。

另外注意:你指定的证书状态是ISSUED,说明该证书已经完成域名验证并签发,再创建验证记录其实没有实际作用——除非你要重新验证或添加新域名到证书中。如果只是要将已签发证书关联到其他资源(比如CloudFront、ALB),直接使用证书ARN即可,无需额外创建验证记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:40:45