У меня есть зона 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}"]
}