繁体   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