The*_*nut 8 amazon-web-services amazon-route53 terraform
我试图遍历变量类型映射,但我不知道如何
这是我到目前为止
在我的 main.tf 中:
resource "aws_route_53_record" "proxy_dns" {
count = "${length(var.account_name)}"
zone_id = "${infrastructure.zone_id}"
name = "proxy-${element(split(",", var.account_name), count.index)}-dns
type = CNAME
ttl = 60
records = ["{records.dns_name}"]
}
Run Code Online (Sandbox Code Playgroud)
在我的 variables.tf
variable "account_name" {
type = "map"
default = {
"account1" = "accountA"
"account2" = "accountB"
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够使用不同的帐户名称创建多个资源
Mar*_*ins 20
如果您使用的是 Terraform 0.12.6 或更高版本,那么您可以使用for_each而不是为count地图中的每个元素生成一个实例:
resource "aws_route53_record" "proxy_dns" {
for_each = var.account_name
zone_id = infrastructure.zone_id
name = "proxy-${each.value}-dns"
# ... etc ...
}
Run Code Online (Sandbox Code Playgroud)
for_eachover的主要优点count是 Terraform 将通过地图中的键识别实例,因此您将获得类似aws_route53_record.proxy_dns["account1"]而不是 的实例,因此您将来aws_route53_record.proxy_dns[0]可以在地图中添加和删除元素,而 Terraform 知道哪个特定实例属于每个元素。
each.key并each.value在资源类型参数中替换count.indexwhenfor_each使用。它们分别评估当前地图元素的键和值。
| 归档时间: |
|
| 查看次数: |
31020 次 |
| 最近记录: |