terraform - Terraform - 从模块创建输出,但 splat 运算符不起作用
问题描述
我已经定义了一个带有循环的模块:
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
.
推荐阅读
- visual-studio-code - 在 VS Code 中使用 powershell ISE 或 Powershell 集成控制台时出现 az cli intellisense 问题
- sql - 为什么我需要两次声明变量:在动态查询之内和之外?
- node.js - nestjs 有或没有 async/await 有区别吗?
- python - 如何基于 CPLEX 上的其他两个约束来实施新约束?
- r - 在大型数据集上运行 R 脚本时如何防止计算机崩溃
- javascript - 使用 javascript 平滑滚动到某些内容的最佳方法是什么?
- c# - 如何在 c# 中使用实体框架 6.1 在遗留模式下添加存储过程?
- python - 如何在 pycharm 上创建多个 django 项目而不会与其他端口冲突
- google-apps-script - 在谷歌应用脚本中迭代过滤数据透视表
- angularjs - 如何使用 api 前缀在 NGINX 中配置 Laravel API 和 Angular 前端