【问题标题】:Terraform merge values in maps into sinlge using key lookupTerraform 使用键查找将地图中的值合并为单个值
【发布时间】:2021-10-19 18:20:02
【问题描述】:

我有一个本地块,它返回地图列表中的数据

    ids = [
  {
    "d81f6779-031f-4aa6-8e88-3242f65e35c0" = "478da44dc0aa8b0cdce5e7448c9509a5095a0f93"
  },
  {
    "d81f6779-031f-4aa6-8e88-3242f65e35c0" = "131e25de9ffd028fc9dab497f537eecb6d1b0faf"
  },
  {
    "e2e6deb4-8512-4089-b2ec-ef77447dabb7" = "f8ea0d6234a8ee2858a3ae04952c6c974337cf6a"
  },
  {
    "e2e6deb4-8512-4089-b2ec-ef77447dabb7" = "143b826f93e78d5a18ac9276972e80414262755e"
  },
  {
    "e2e6deb4-8512-4089-b2ec-ef77447dabb7" = "e7fe936edcc34c258c35aa19b9c702e553e3b265"
  },
]

我正在寻找如下所示的输出。我可以使用或必须编写一些 for 循环的任何函数?

ids = 
{
    "d81f6779-031f-4aa6-8e88-3242f65e35c0" = ["478da44dc0aa8b0cdce5e7448c9509a5095a0f93", "131e25de9ffd028fc9dab497f537eecb6d1b0faf"],
    "e2e6deb4-8512-4089-b2ec-ef77447dabb7" = ["f8ea0d6234a8ee2858a3ae04952c6c974337cf6a", "143b826f93e78d5a18ac9276972e80414262755e","e7fe936edcc34c258c35aa19b9c702e553e3b265"]
}

【问题讨论】:

  • 这能回答你的问题吗? Terraform 0.12 nested for loops
  • { for k in local.ids : keys(k)[0] => values(k)[0]... }
  • @jordanm 为什么不对答案发表评论?它的正确解决方案。

标签: terraform hashicorp


【解决方案1】:

这通过使用grouping mode 操作局部变量来实现,如文档中所述。我不必再写一个块了。

    locals {
  ids = {for vfc in data.vra_fabric_compute.this : vfc.custom_properties.vcUuid => vfc.id... } 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    相关资源
    最近更新 更多