在 AWS 之外使用 Terraform 进行 AWS ACM 证书和 DNS 验证

在 AWS 之外使用 Terraform 进行 AWS ACM 证书和 DNS 验证

当我尝试创建证书并检查其验证时,Terraform 出现了问题。

我得到了这个地形文件:

resource "aws_acm_certificate" "api_cert" {
  domain_name = "google.com"
  validation_method = "DNS"
}

output "domain_validation" {
  value = "${aws_acm_certificate.api_cert.domain_validation_options}"
  description = "Certificate domain name validation options"
}

resource "aws_acm_certificate_validation" "api_cert" {
  certificate_arn = "${aws_acm_certificate.api_cert.arn}"
  timeouts {
    create = "2h"
  }
}

我们正在使用 AWS 之外的 DNS 服务器,因此我需要在作业完成之前获取 domain_validation_options。

这就是我需要的:

  1. Terraform 创建证书
  2. Terraform 打印 domain_validation_options
  3. 我手动更改 DNS 记录,以便可以验证证书
  4. 在 terraform 中运行 certificate_validation
  5. Terraform 使用经过验证的证书创建 ELB

使用这样的文件后我在第 4 步失败后得到了 domain_validation_options...

答案1

您必须将其分成两个单独的 Terraform 运行;您将无法获得output各种资源的写出结果。

或者,根据您使用的 DNS 服务器,有许多 Terraform 提供程序可以为您自动创建 DNS 记录。我猜验证是通过创建TXT某种记录来完成的。

相关内容