【发布时间】:2020-07-28 15:25:22
【问题描述】:
我正在尝试使用 for_each 在 terraform 中创建多个别名 DNS 记录。指定别名的名称和区域 ID 时出现错误。我的问题是如何从定义为一组字符串的变量中读取?下面是我定义的代码块和变量:
resource "aws_route53_record" "alias_records" {
for_each = var.alias_names
zone_id = aws_route53_zone.zone.zone_id
name = each.key
type = "A"
alias {
name = var.alias_dns_names[each.key]
zone_id = var.alias_zone_ids[each.key]
evaluate_target_health = false
}
}
variable "alias_names" {
type = set(string)
}
variable "alias_dns_names" {
type = set(string)
}
variable "alias_zone_ids" {
type = set(string)
}
Error: Invalid index
on alias.tf line 8, in resource "aws_route53_record" "alias_records":
8: name = var.alias_dns_names[each.key]
This value does not have any indices.
Error: Invalid index
on alias.tf line 9, in resource "aws_route53_record" "alias_records":
9: zone_id = var.alias_zone_ids[each.key]
This value does not have any indices.
alias_names = [
"alias1",
"alias2",
"alias3"
}
alias_dns_names = [
"alias_dns_1",
"alias_dns_2",
"alias_dns_3"
}
alias_zone_ids = [
"alias_zone_1",
"alias_zone_2",
"alias_zone_3"
}
【问题讨论】:
-
在这种情况下您的变量输入是什么样的?
-
我在 .tfvars 文件中有我的输入。我将更新输入。
-
因此您正在遍历一个列表并尝试访问另外两个列表中的值。看起来你想要一个
Map。
标签: amazon-web-services dns terraform alias