我有一个地形列表
a = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
有没有办法让我*2
在列表上应用一个函数(例如),以获得
b = [2,4,6,8]
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种插值语法,也许map(a, _*2)
,甚至是类似的东西
variable "b" {
count = "${length(a)}"
value = "${element(a, count.index)} * 2
}
Run Code Online (Sandbox Code Playgroud)
据我所知,不存在这样的事情。我错过了什么吗?
根据@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}"
}
Run Code Online (Sandbox Code Playgroud)
给
输出:
local_b = [2, 4, 6, 8,]
目前这是一个悬而未决的问题。最近发布了Terraform 的新版本,除了许多其他 HCL 改进之外,它应该能够做到这一点。
我认为目前最好的选择是为列表中的每个元素创建本地值(请记住,您不能在变量的默认值中使用插值语法;本地变量的存在是为了解决此限制)。不过,我不确定当地人是否有一个count
属性。
归档时间: |
|
查看次数: |
1392 次 |
最近记录: |