如何解决如何从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"
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。