gpt4 book ai didi

terraform - 将 map 列表映射到 terraform 中选定字段值的列表

转载 作者:行者123 更新时间:2023-12-04 00:25:48 25 4
gpt4 key购买 nike

如果资源使用计数参数在 terraform 中指定多资源,则有一个简单的语法可以为资源实例提供专用字段的列表/数组。

例如

aws_subnet.foo.*.id

由于有很多版本,可以声明具有复杂结构的变量,例如映射列表。
variable "data" {
type = "list"
default = [
{
id = "1"
...
},
{
id = "10"
...
}
]
}

我正在寻找一种可能性,对我可以为多资源做的变量做同样的事情:将数组投影到数组元素的字段值数组。

很遗憾
var.data.*.id

对于资源不起作用。有没有可能做到这一点?

最佳答案

更新
以来,大量奇特的功能已添加到 terraform 中地形 0.12 已发布,例如列表理解,解决方案非常简单。

locals {
ids = [for d in var.data: d.id]
#ids = [for d in var.data: d["id"]] #same
}

# Then you could get the elements this way,
# local.ids[0]

terraform 0.12 之前的解决方案
template_file可以帮助你。
data "template_file" "data_id" {
count = "${length(var.data)}"
template = "${lookup(var.data[count.index], "id")}"
}
然后你会得到一个列表 "${data.template_file.data_id.*.rendered}" ,其元素是“id”的值。
您可以像这样通过索引获取其元素
"${data.template_file.data_id.*.rendered[0]}"
或通过函数 element()
"${element(data.template_file.data_id.*.rendered, 0)}"

关于terraform - 将 map 列表映射到 terraform 中选定字段值的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43893295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com