我定义了一个带有循环的模块:
module "stamp" {
for_each = toset(var.stamps)
source = "./modules/stamp"
...
}
从此我尝试创建一个输出列表,基于这个示例:
output "stamp_locations" {
value = module.stamp.*.location
}
但是,这可以验证,但是在
terraform plan
上我收到错误:
│ Error: Unsupported attribute
│
│ on output.tf line 3, in output "stamp_locations":
│ 3: value = module.stamp.*.location
│
│ This object does not have an attribute named "location"
最后只有这个有效:
output "stamp_locations" {
value = [for instance in module.stamp : instance.location]
}
所以我想知道:我是否犯了任何错误,或者模块和循环不支持 splat 语法?
module.stamp
是一张地图,而不是一个列表。以下内容应适用于您的地图:
value = values(module.stamp)[*].location
values
将从您的 module.stamp
返回值列表。