Terraform – Spalat Expression
什么是展开表达式(Splat Expression)
Terraform 的展开表达式是一种简洁的语法,用于对列表(或其他集合类型)中的每个元素进行相同的操作。例如,如果你有一个对象列表,每个对象都包含属性 id
,你可以用展开表达式快速提取所有的 id
值,而无需写完整的 for 循环:
# 使用 for 表达式
[for o in var.list : o.id]
# 等价的展开表达式
var.list[*].id
在展开表达式中,[*]
表示对列表中的所有元素进行遍历,然后取每个元素的右侧属性。这种写法简洁且易读,非常适合在引用资源属性时使用
使用案例
提取所有服务器的 id
variable "servers" {
default = [
{ id = "server-1", name = "web-01" },
{ id = "server-2", name = "web-02" }
]
}
output "server_ids" {
value = var.servers[*].id
}
Output:

Facebook评论