0

我有这个变量:

variable "my_var" {
  type = map(object({
    param      = list(string)
  }))

  default = {
    aaa = {
      param = [
        "sldkjflksdf",
      ]
    }
    bbb = {
      param = [
        "oejkfoekfoe",
        "wewewwe",
        "sssssss"
      ]
    }
    ccc = {
      param = [
        "qqqqqqqqqqqqq",
        "llllllllllll",
        "huhuhuh"
      ]
    }
  }
}

我想在资源中使用 for_each 来遍历此地图中的所有“参数”。所以我想连接嵌套映射的所有参数数组,然后用 foreach 循环它。我尝试使用 flatten 但不确定它是如何工作的。我需要在本地创建一个新变量吗?

4

1 回答 1

0

把它放在像这样的局部变量中可能是个好主意

locals {
  all_params = flatten([for v in values(var.my_var) : v["param"]])
}

然后你可以写

resource "your_resource" "example" {
  for_each = local.all_params
  
  # ... access elements with ${each.value} ...
}
于 2020-07-02T18:13:34.733 回答