簡體   English   中英

terraform 用至少一個公共鍵合並兩個映射

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM