List 地形在地图上迭代

List 地形在地图上迭代,list,maps,terraform,List,Maps,Terraform,我的意见如下: list_groups= [ { "dev-api-eu" = { envs = [ "dev-eu-1", "dev-eu-2", ] hosts = [ "dev-api-e

我的意见如下:

list_groups= [
      {
           "dev-api-eu" = {
              envs  = [
                   "dev-eu-1",
                   "dev-eu-2",
                ]
             hosts = [
                   "dev-api-eu1",
                   "dev-api-eu2",
                ]
            }
           "dev-api-uk" = {
               envs  = [
                   "dev-uk-1",
                   "dev-uk-2",
                ]
               hosts = [
                   "dev-api-uk1",
                   "dev-api-uk2",
                ]
            }
        },
       {
           "dev-api-us" = {
               envs  = [
                   "dev-us-1",
                   "dev-us-2",
                ]
               hosts = [
                   "dev-api-us1",
                   "dev-api-us2",
                ]
            }
        },
    ]
现在,我希望我的输出是一个由3个地图和3个键组成的地图:

"dev-api-eu"
"dev-api-uk"
"dev-api-us"
不更改值

下面是我想要的输出:

 map_groups1      = {
       dev-api-eu = {
           envs  = [
               "dev-eu-1",
               "dev-eu-2",
            ]
           hosts = [
               "dev-api-eu1",
               "dev-api-eu2",
            ]
        }
       dev-api-uk = {
           envs  = [
               "dev-uk-1",
               "dev-uk-2",
            ]
           hosts = [
               "dev-api-uk1",
               "dev-api-uk2",
            ]
        }
       dev-api-us = {
           envs  = [
               "dev-us-1",
               "dev-us-2",
            ]
           hosts = [
               "dev-api-us1",
               "dev-api-us2",
            ]
        }
    }
如果列表中的每个项目只有一个映射,则下面的选项有效

map_groups1 = {
for record in local.list_groups:
  keys(record)[0] => values(record)[0]
}
上面的代码跳过了键“devapi uk”,只在结果中给出了两个映射。 但是,正如您所看到的,输入列表中的第一项有两个映射,并且可以没有n个映射。有什么想法吗?

您可以使用:


您能提供所需输出映射的完整示例吗?谢谢。这有帮助。我还有一个稍微不同的用例,因为它是一个不同的问题,所以我在这里提出了它:。请你也看一下好吗。
output "test" {  
    value = merge(var.list_groups...)
}