我有一个如下所示的示例地图,并且正在尝试删除任何具有与“bong”匹配的 key2 值的帐户。
所以起始地图看起来像这样:
sample_map={
account1 = {
key1 ="foo"
key2 ="bar"
}
account2 = {
key1 ="bing"
key2 ="bong"
}
}
最终结果应该如下所示:
new_map={
account1 = {
key1 ="foo"
key2 ="bar"
}
}
我尝试过操作以下 for 循环,但仅当 var.exclude 与标签(不是键)匹配时才有效。
new_map = { for k, v in var.sample_map : k => v if ! contains(var.exclude, k) }
如果我没理解错的话,你就快到了。它应该是:
contains(values(v), var.exclude)
工作示例如下:
variable "sample_map" {
default ={
account1 = {
key1 ="foo"
key2 ="bar"
}
account2 = {
key1 ="bing"
key2 ="bong"
}
}
}
variable "exclude" {
default = "bong"
}
output "test" {
value = { for k, v in var.sample_map: k => v if ! contains(values(v), var.exclude) }
}
这使:
test = {
"account1" = {
"key1" = "foo"
"key2" = "bar"
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)