因此,我有一个terraform变量类型列表(String),称为区域,包含
zones = [
"example.com",
"example2.com",
"example3.com",
...
]我正在使用数据cloudflare_zones资源来获取所有的区域信息。
data "cloudflare_zones" "zones" {
for_each = toset(var.zones)
filter {
name = each.value
}
}每个区域的输出
data.cloudflare_zones.zones["example.com"]
{
"filter" = tolist([
{
"account_id" = ""
"lookup_type" = "exact"
"match" = ""
"name" = "example.com"
"paused" = false
"status" = ""
},
])
"id" = "9f7xxx3xxxx"
"zones" = tolist([
{
"id" = "e13xxxx"
"name" = "example.com"
},
])
}要获取区域id,需要解析data.cloudflare_zones,如下所示:
data.cloudflare_zones.zones["example.com"].zones[0].id那么,我想要创建的是一个变量,它将是一个对象,所有的区域名称都是键和区域in和值,所以我可以在其他资源中使用它们。
例如:
zones_ids =
{
"example.com" = "xxxzone_idxxx",
"example2.com" = "xxxzone_id2xxx",
"example3.com" = "xxxzone_id3xxx",
...
}我想在本地人街区内实现这一点。
locals {
...
}发布于 2022-09-27 13:43:45
这应该很容易:
locals {
zones_ids = { for k,v in data.cloudflare_zones.zones: k => v.zones[0].id }
}或者另一种选择:
locals {
zones_ids = { for k,v in data.cloudflare_zones.zones: v.zones[0].name => v.zones[0].id }
}https://stackoverflow.com/questions/73868197
复制相似问题