我有一个地形列表
a = [1,2,3,4]
我是否可以在列表中应用函数(例如*2
)
b = [2,4,6,8]
我在寻找插值语法,也许是map(a, _*2)
,甚至是类似的
variable "b" {
count = "${length(a)}"
value = "${element(a, count.index)} * 2
}
据我所知,不存在这样的东西。我想念什么吗?
答案 0 :(得分:1)
当前为open issue。最近宣布了new version of Terraform,除了其他许多HCL改进外,它应该可以执行此操作。
我认为,当前最好的选择是为列表的每个元素创建local values(请记住,您不能在变量的默认值中使用插值语法;存在局部变量可以解决此限制)。但是,我不确定本地人是否具有count
属性。
答案 1 :(得分:0)
按照@Rowan Jacob的回答,现在可以在v0.12中使用新的for
表达式了。
请参阅:https://www.terraform.io/docs/configuration/expressions.html#for-expressions
variable "a" {
type = "list"
default = [1,2,3,4]
}
locals {
b = [for x in var.a : x * 2]
}
output "local_b" {
value = "${local.b}"
}
给予
输出:
local_b = [2,4,6,8,]