如果满足条件,将额外的元素添加到 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"] : []])
我有一个 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"] : []])