Я работаю над созданием модуля для 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" {