【问题标题】:terraform loop with a conditional key inside an object对象内带有条件键的 terraform 循环
【发布时间】:2022-01-03 21:34:10
【问题描述】:

假设我们有这个变量:

  foobars = {
    "first" : {
      specialkeys: [
        "a",
        "b",
        "c"
      ]
    }
    "second" : {}
  }

现在假设我们要循环遍历 foobars 对象,知道 specialkeys 不存在于“second”对象中。

这是我尝试过的,但它抱怨

This object does not have an attribute named specialkeys

我的尝试:

  data = flatten([
    for k, v in var.foobars : [
      for sk in v.specialkeys : {
          special = sk,
          foo = k
      }
    ]
  ])

【问题讨论】:

    标签: loops for-loop terraform terragrunt


    【解决方案1】:

    我相信你会想要做以下事情:

    data = flatten([
        for k, v in local.foobars :
        [
          for sk, sv in v :
          [
            for spec in sv : {
              special = spec,
              foo     = k
            }
          ]
        ]
      ])
    

    这将输出如下内容:

    [
      {
        "foo" = "first"
        "special" = "a"
      },
      {
        "foo" = "first"
        "special" = "b"
      },
      {
        "foo" = "first"
        "special" = "c"
      },
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 2021-03-27
      • 2023-03-12
      • 1970-01-01
      • 2017-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多