рассчитывать на aws_acm_certificate_validation - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь создать несколько сертификатов ACM из заданной переменной.

Вот сокращенный файл terraform, который я пытаюсь использовать:

variable "prod_hostnames"
    type = "list"
    default = ["first.com", "second.com"]
}

resource "aws_acm_certificate" "prod-certificate" {
  count = "${length(var.prod_hostnames)}"

  domain_name = "${var.prod_hostnames[count.index]}"
  validation_method = "DNS"
}

resource "aws_route53_record" "prod-certificate-validation" {
  count   = "${length(var.prod_hostnames)}"
  zone_id = "${var.zone_dns}"

  ttl     = "60"
  name    = "${element(aws_acm_certificate.prod-certificate.*.domain_validation_options.0.resource_record_name, count.index)}"
  type    = "${element(aws_acm_certificate.prod-certificate.*.domain_validation_options.0.resource_record_type, count.index)}"
  records = ["${element(aws_acm_certificate.prod-certificate.*.domain_validation_options.0.resource_record_value, count.index)}"]
}

Поиск в aws_route53_record.prod-certificate-validation не работает, так как не представляется возможным извлечь domain_validation_options.0.resource_record_name из списка aws_acm_certificate.prod-certificate, он завершается с этим сообщением об ошибке:

Resource 'aws_acm_certificate.prod-certificate' does not have attribute 'domain_validation_options.0.resource_record_type' for variable 'aws_acm_certificate.prod-certificate.*.domain_validation_options.0.resource_record_type'

Есть ли способ сделать то, чего я пытаюсь достичь? Я бы хотел не указывать столько aws_acm_certificate ресурсов, сколько у нас есть имена хостов.

[ПРАВИТЬ] Если я удалю ресурс aws_route53_record, terraform state list даст:

module.hashistack.aws_acm_certificate.prod-certificate[0]     
module.hashistack.aws_acm_certificate.prod-certificate[1]

и terraform state show 'module.hashistack.aws_acm_certificate.prod-certificate[0]' дает:

id                                                = arn:aws:acm:eu-central-1:[redacted]
arn                                               = arn:aws:acm:eu-central-1:[redacted]
domain_name                                       = *.first.com
domain_validation_options.#                       = 1
domain_validation_options.0.domain_name           = *.first.com
domain_validation_options.0.resource_record_name  = _6f6a73ceb8bbe016a0c522c148e39b3b.first.com.
domain_validation_options.0.resource_record_type  = CNAME
domain_validation_options.0.resource_record_value = _d6b3b1c60261a201476820a3517a3ed5.acm-validations.aws.
subject_alternative_names.#                       = 0
tags.%                                            = 0
validation_emails.#                               = 0
validation_method                                 = DNS
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...