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

Posted

技术标签:

【中文标题】如果满足条件,则将额外元素添加到 terraform 中的列表【英文标题】:adding extra element to a list in terraform if condition is met 【发布时间】:2021-08-26 09:03:31 【问题描述】:

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

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

在这个 terraform 文件中有两个变量,分别称为年龄和性别,如果年龄等于 12 并且性别等于男性(即如果 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]

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

很好奇...还有什么其他方法? :)【参考方案2】:

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

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

【讨论】:

以上是关于如果满足条件,则将额外元素添加到 terraform 中的列表的主要内容,如果未能解决你的问题,请参考以下文章