将列表转换为Terraform中的另一个列表

时间:2020-10-16 16:29:00

标签: terraform

我记得以前在文档中看到过类似的内容,但是现在找不到。

我有一个我创建的实例列表aws_instance.managers.*.id,我想要将其转换为适合于Cloudwatch仪表板的另一个列表,看起来像

  [
      ".",
      "CPUCreditBalance",
      ".",
      "i-0f2",
  ],

所以说我有一个列表aws_instance.managers.*.id,它解析为["i-a", "i-b", "i-c"] ,我希望它转换成类似的内容

[
  [
      ".",
      "CPUCreditBalance",
      ".",
      "i-a",
  ],
  [
      ".",
      "CPUCreditBalance",
      ".",
      "i-b",
  ],
  [
      ".",
      "CPUCreditBalance",
      ".",
      "i-c",
  ],
]

大概是

locals {
  dashboard_cpu_balance = [ foreach aws_instance.managers.*.id => 
    [
      ".",
      "CPUCreditBalance",
      ".",
      "i-a",
    ],
  ]
}

1 个答案:

答案 0 :(得分:1)

类似的东西...

locals {
  dashboard_cpu_balance = [ for a in aws_instance.managers.*.id :
    [
      ".",
      "CPUCreditBalance",
      ".",
      a,
    ]
  ]
}

输出..

Outputs:

op = [
  [
    ".",
    "CPUCreditBalance",
    ".",
    "i-a",
  ],
  [
    ".",
    "CPUCreditBalance",
    ".",
    "i-b",
  ],
  [
    ".",
    "CPUCreditBalance",
    ".",
    "i-c",
  ],
]