Terraform:我如何从json文件中读取值?



我有json文件(map.json):

[
{
"QueueName": "queue1",
"TypeName": "type1"
},
{
"QueueName": "queue2",
"TypeName": "type2"
},
{
"QueueName": "queue3",
"TypeName": "type2"
}
]

,我可以将其加载到以下变量中:

locals {
maps = jsondecode(file("maps.json"))
}

如何读取TypeNameQueueName的值="queue2" ?

我想你是在看这样的东西:

type = [for el in local.maps : el["TypeName"] if el["QueueName"] == "queue2"]

$ terraform console
> local.response
[
"type1",
]

逻辑上这将返回一个元素列表,但是如果您只想检索第一个结果,那么您可以使用:

response = [for el in local.maps : el["TypeName"] if el["QueueName"] == "queue1"]
type     = length(local.response) > 0 ? local.response[0] : ""
<<p>输出/strong>
$ terraform console
> local.type
"type1"
>

或只是:

type = local.maps[index(local.maps.*.QueueName, "queue1")]["TypeName"]

但是如果元素queueName不存在,就会抛出异常,如下所示:

Call to function "index" failed: item not found

最新更新