Динамический маршрут 53 записи для проверки сертификата ACM - PullRequest
1 голос
/ 22 июня 2019

У меня есть зона Route 53 (example.org) с несколькими наборами записей (example.org, sub1.example.org).У меня также есть сертификат ACM с проверкой DNS для доменов, описанных наборами записей.Все это описано в Terraform.В настоящее время, чтобы проверка работала, я должен перечислить все доменные имена в сертификате (domain_name, subject_alternative_names), проверке сертификата (validation_record_fqdns) и записях Route 53 (aws_route53_record ресурсы).Есть ли лучший, более динамичный способ сделать это, поэтому, если я хочу добавить новый поддомен, мне нужно сделать это только в одном месте?Я читал о функциях for и for_each в последних версиях Terraform, но пока мне нетрудно использовать это в этом случае.

resource "aws_acm_certificate" "example" {
  domain_name               = "example.org"
  subject_alternative_names = ["sub1.example.org"]
  validation_method         = "DNS"
}

resource "aws_acm_certificate_validation" "example" {
  certificate_arn         = "${aws_acm_certificate.example.arn}"
  validation_record_fqdns = ["${aws_route53_record.example-validation.fqdn}", "${aws_route53_record.example-validation-sub1.fqdn}"]
}

resource "aws_route53_record" "example-validation" {
  zone_id = "${data.aws_route53_zone.example.id}"
  name    = "${aws_acm_certificate.example.domain_validation_options.0.resource_record_name}"
  type    = "${aws_acm_certificate.example.domain_validation_options.0.resource_record_type}"
  ttl     = 60
  records = ["${aws_acm_certificate.example.domain_validation_options.0.resource_record_value}"]
}

resource "aws_route53_record" "example-validation-sub1" {
  zone_id = "${data.aws_route53_zone.example.id}"
  name    = "${aws_acm_certificate.example.domain_validation_options.1.resource_record_name}"
  type    = "${aws_acm_certificate.example.domain_validation_options.1.resource_record_type}"
  ttl     = 60
  records = ["${aws_acm_certificate.example.domain_validation_options.1.resource_record_value}"]
}
...