[英]terraform merge two maps with at least one common key
我希望用至少一个公共密钥合并两张地图。 合并 function 覆盖第一个 map 的公共键值。
我有两张地图和一个公用钥匙。
Code
locals {
map1 = {
"key1" = "value1",
"key2" = "value2"
}
map2 = {
"key1" = "value11"
}
}
output MergedMaps {
value = merge(local.map1, local.map2)
}
Output
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
MergedMaps = {
"key1" = "value11"
"key2" = "value2"
}
Desired output
MergedMaps = {
“key1” = [“value1”, “value11”]
“key2” = “value2”
}
感谢帮助
最好在MergedMaps
中使用相同的数据结构,而不是混合列表和字符串。 所以它会是
MergedMaps = {
“key1” = [“value1”, “value11”]
“key2” = [“value2”]
}
可以使用
output MergedMaps {
value = {for key in distinct(concat(keys(local.map1), keys(local.map2))):
key => flatten([lookup(local.map1, key, []),
lookup(local.map2, key, [])
])
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.