如何在Terraform 11中使用条件和列表

如何在Terraform 11中使用条件和列表,terraform,Terraform,我需要在terraform 11中创建一个条件,在这里我检查是否存在一个局部列表变量,如果它存在,然后使用该列表,如果不使用另一个列表 例如,我有: var.localList = ["apples", "oranges"] var.remoteList = ["bananas", "carrots"] 现在我想做一些类似的事情(这不起作用): 因此,如果var.localList不是空的,则将该列表分配给myVar,否则使用var.remoteList 不确定这在地形11中是否可行 编辑:

我需要在terraform 11中创建一个条件,在这里我检查是否存在一个局部列表变量,如果它存在,然后使用该列表,如果不使用另一个列表

例如,我有:

var.localList = ["apples", "oranges"]

var.remoteList = ["bananas", "carrots"]
现在我想做一些类似的事情(这不起作用):

因此,如果
var.localList
不是空的,则将该列表分配给
myVar
,否则使用
var.remoteList

不确定这在地形11中是否可行

编辑:忘了提到我正在使用terraform 11。

您可以使用:

您可以通过以下方式完成此操作:

我在这里找到了答案

基本上,在这一点上,这是一个解决办法

myVar   = "${split(",", length(var.localList) > 0 ? join(",", var.localList) : join(",", var.remoteList))}"
我在这里找到了答案

基本上,在这一点上,这是一个解决办法

myVar   = "${split(",", length(var.localList) > 0 ? join(",", var.localList) : join(",", var.remoteList))}"

函数
coalesclist
似乎正是您想要的

coalesclist接受任意数量的列表参数,并返回第一个非空的参数

所以你会写这样的东西

myVar = coalescelist(var.localList, var.localList)

函数
coalesclist
似乎正是您想要的

coalesclist接受任意数量的列表参数,并返回第一个非空的参数

所以你会写这样的东西

myVar = coalescelist(var.localList, var.localList)

你能发布你的资源块吗?你到底想对结果列表做什么?你能发布你的资源块吗?你到底想对结果列表做什么?答案中的这个例子对我来说正如预期的那样有效。你在做什么不同的事吗?如果是这样的话,你应该编辑你的问题,以准确地显示你在一个项目中尝试了什么。答案中的这个例子对我来说正如预期的那样有效。你在做什么不同的事吗?如果是这样的话,你应该编辑你的问题,以准确地显示你在a中尝试了什么。你使用的是Terraform 0.11或更低版本吗?如果是这样的话,你应该在你的问题中解释一下,因为Terraform 0.12可以正确处理其他答案中的列表,并且已经发布了9个多月了,所以人们使用0.12是非常合理的,除非他们特别声明。你使用Terraform 0.11还是更低?如果是这样的话,你应该在你的问题中解释一下,因为Terraform 0.12可以正确处理其他答案中的列表,并且已经发布了9个多月,所以人们使用0.12是非常合理的,除非他们特别声明。