如何从Terraform中的地图中移除与键值匹配的值 [英] How to remove values from a map in Terraform that match a key value
本文介绍了如何从Terraform中的地图中移除与键值匹配的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个如下所示的映射示例,正在尝试删除key2值与‘bong’匹配的所有帐户。
因此起始映射将如下所示:
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"
}
}
这篇关于如何从Terraform中的地图中移除与键值匹配的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文