如果条件满足,在terraform中向列表中添加额外元素

如果条件满足,在terraform中向列表中添加额外元素,terraform,terraform0.12+,terraform-template-file,Terraform,Terraform0.12+,Terraform Template File,我有一个terraform的列表,看起来像: array = ["a","b","c"] 在这个terraform文件中,有两个变量称为age和gender,我想让它成为这样,如果age等于12,gender等于male,那么名为array的列表中有一个额外的元素称为“d”(即,如果var.age==12&&var.gender='male',那么数组应该是[“a”、“b”、“c”、“d”],否则数组应该是[“a”、“b”、“c”])

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

array = ["a","b","c"]
在这个terraform文件中,有两个变量称为age和gender,我想让它成为这样,如果age等于12,gender等于male,那么名为array的列表中有一个额外的元素称为“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
}