Terraform 强制将 'aws_acm_certificate' 替换为多个 'subject_alternative_names'

Terraform forces replacement of 'aws_acm_certificate' with multiple 'subject_alternative_names'

我正在尝试创建一个包含多个 subject_alternative_names

aws_acm_certificate
resource "aws_acm_certificate" "cert" {
  provider          = aws.acm
  domain_name       = local.domain_name
  validation_method = "DNS"
  subject_alternative_names = [local.domain_name, "www.${local.domain_name}"]
}

运行 apply 第一次像宣传的那样工作。但是,当我使用完全相同的 vars terraform 重新 运行 apply 时,我想重新创建证书,原因如下:

   ~ subject_alternative_names = [ # forces replacement
       + "xyz.com",
         "www.xyz.com",
     ]

看来 [local.domain_name, "www.${local.domain_name}"] 与其当前状态相比有所不同。

对这里发生的事情有什么想法吗?

看起来 subject_alternative_names 不应包含证书自己的域名。

如果我将 subject_alternative_names 更改为 ["www.${local.domain_name}"],它似乎做对了。不确定这是错误还是强制使用 subject_alternative_names 的正确方法,因为我看到许多证书在 subject_alternative_names.

中包含自己的域名

如果有人有更好的分析,我很想听听。

subject_alternative_names 似乎是关键。感谢max.ott

我使用以下方法解决了这个问题:

resource "aws_acm_certificate" "vpn" {
  domain_name       =  "vpn.${var.domain_name}"
  certificate_authority_arn =aws_acmpca_certificate_authority.ca.arn
  subject_alternative_names = []