Я пишу модули Terraform для ресурсов CloudFlare с опциями сервера имен. В моем случае, если пользователь установил сервер имен route53, модуль установит запись для cloudflare как запись NS, в противном случае пользователь NameServers установит в качестве записи CloudFlare
locals {
ns = "${var.use_route53_ns_record == true ? length(data.aws_route53_zone.main.name_servers) : length(var.name_servers)}"
}
resource "cloudflare_record" "ns" {
count = "${local.ns}"
domain = "${var.domain}"
name = "${var.domain}"
value = "${var.use_route53_ns_record == true ? data.aws_route53_zone.main.name_servers[count.index]:var.name_servers[count.index]}"
type = "NS"
ttl = 1
}
data "aws_route53_zone" "main" {
name = "${var.domain}."
}
Когда я запустил этот модуль, он выдает сообщение об ошибке, как показано ниже.
Ресурс "data.aws_route53_zone.main" не найден для переменной "data.aws_route53_zone.main.name_servers '
Как я могу установить переменные как условные?
Спасибо, пожалуйста, помогите!