寻找在terraform中创建JSON字符串(最好使用jsonencode)或类似方法的最简单方法,我已经查看了terraform文档上的几个示例,但仍在努力确定确切的格式以正确输出此输出。这样应该可以很容易地保留我们在docker-compose中使用的dev.env文件,以将其很好地传输到用于多个容器的大型数组中。
locals {
container_envs = {
ENV = "dev"
CONTAINER_TAG = "dev"
}
}
到以下类型的输出
[{
"name": "ENV",
"value": "dev"
},
{
"name": "CONTAINER_TAG",
"value": "dev"
}
]
答案 0 :(得分:3)
我认为以下方法应该有效(不确定顺序是否重要):
locals {
container_envs = {
ENV = "dev"
CONTAINER_TAG = "dev"
}
}
output "test" {
value = [for k,v in local.container_envs: { name = k, value = v }]
}
给出:
test = [
{
"name" = "CONTAINER_TAG"
"value" = "dev"
},
{
"name" = "ENV"
"value" = "dev"
},
]