[英]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.