如果满足条件,将额外的元素添加到 terraform 中的列表

adding extra element to a list in terraform if condition is met

我有一个 terraform 的列表,看起来像:

array = ["a","b","c"]

在这个 terraform 文件中有两个变量,分别称为年龄和性别,如果年龄等于 12 且性别等于男性,我想使名为数组的列表有一个名为“d”的额外元素(即如果 var.age == 12 && var.gender == 'male' 那么数组应该是 ["a","b","c","d"],否则数组应该是[“a”,“b”,“c”])。以下方法是否正确,或者我需要使用其他方法吗?

array = ["a","b","c", var.age == 12 && var.gender == 'male' ? "d" : null]

有几种方法可以做到这一点。一种方法是(示例):

variable "array" {
  default = ["a","b","c"]
}

variable "age" {
  default = 12
}

variable "gender" {
  default = "male"
}

locals {
  array = var.age == 12 && var.gender == "male" ? concat(var.array, ["d"]) : var.array
}

output "test" {
  value = local.array
}

还有另一种方法可以使用 flatten:

variable = flatten(["a", "b", "c", var.age == 12 ? ["d"] : []])