我正在尝试让terraform在我的json文件中提取多个条目。
杰森看起来像这样.......
"data":
[
{"name": "name-of-server", "region": "us-east", "role": "could-be-tag-or-else", "create_app": true},
]
我的Terraformmain.tf目前看起来像这样。
locals {
# get json
json-data = jsondecode(file("all-windows-machines-full.json"))
# get all windows
windows-machines = [for data in local.json-data.data : data.name]
}
output "windows-machines" {
value = local.windows-machines
}
输出仅显示服务器名称列表。
如果我想添加地区,我需要在www.example.com中输入什么main.tf?
感谢任何帮助。
我试过多次添加输入选项和变量。我是terraform的新手,还在学习。
1条答案
按热度按时间06odsfpq1#
为了帮助您理解JSON输入,您提供的格式是“对象”的“列表”(又名“元组”或“集合”)。如果您想了解这些术语之间的差异,我建议您在这里查看官方和非常清晰的文档。
原始对象(“as-is”)
为了从对象列表中重新创建对象,不要将新对象限制为
data.name
。相反,使用完整的对象,如下所示:你会得到这样的输出:
自定义构建对象
如果你不想让所有属性都成为最终对象的一部分,你也可以在
for
循环中构建它:这将给予你:
如果你想了解更多关于循环的知识,我也会推荐你这里的文档:可以在Terraform中使用的https://developer.hashicorp.com/terraform/language/expressions/for和the other expressions。)