Как решить Не найдено ни одной подходящей Route53Zone? - PullRequest
0 голосов
/ 19 апреля 2020

Я работаю над созданием модуля для terraform AWS Диспетчер сертификации в terraform> 0.12 Версия. Я заметил, что когда var.domain_name=["x.public.com","y.private.dev"] имеет как публичные c, так и частные домены, я получаю сообщение об ошибке no matching Route53Zone found.

Я вручную запустил aws route53 list-hosted-zones-by-name, я смог получить оба publi c и идентификаторы частной зоны, также это работало, когда var.domain_name=["x.public.com"] or var.domain_name=["y.private.dev"], ie только все публичные c или все частные.

Я не уверен, в чем проблема? Я попытался удалить private_zone, а также попытался с private_zone = trimprefix(each.value,".") == "dev" ? "true" : "false", в обоих случаях получена одна и та же ошибка.

Может кто-нибудь указать мне, где я не прав. Спасибо!

Код:

resource "aws_acm_certificate" "certificate" {
  for_each                  = toset(var.domain_name)
  domain_name               = each.value
  subject_alternative_names = ["*.${each.value}"]
  validation_method         = "DNS"

  tags = {
    Name  = each.value
    owner = "foo"
  }

  lifecycle {
    create_before_destroy = true
  }
}

data "aws_route53_zone" "selected" {

  for_each     = toset(var.domain_name)
  name         = each.value
  private_zone = false
}

resource "aws_route53_record" "record" {
  for_each = toset(var.domain_name)
  zone_id = data.aws_route53_zone[each.key].selected.zone_id 
  name    = aws_acm_certificate.certificate[each.key].domain_validation_options.0.resource_record_name
  type    = aws_acm_certificate.certificate[each.key].domain_validation_options.0.resource_record_type
  ttl     = "300"
  records = [aws_acm_certificate.certificate[each.key].domain_validation_options.0.resource_record_value]
}


Error: no matching Route53Zone found

  on ../tf_module_acm/main.tf line 1, in data "aws_route53_zone" "selected":
   34: data "aws_route53_zone" "selected" {


Error: no matching Route53Zone found

  on ../tf_module_acm/main.tf line 1, in data "aws_route53_zone" "selected":
   34: data "aws_route53_zone" "selected" {
...