在 Terraform 中将字符串或数组转换为地图



Terraform v0.10.7 AWS 提供商版本 ="~> 1.54.0"

是否有任何示例如何在Terraform中将字符串或列表转换为地图?

我们正在像这样设置Consul键/值存储:

consul kv put common/rules/alb/service1 name=service1,port=80,hcproto=http,hcport=80

我可以正确访问键和值,现在我正在尝试在 Terraform 中使用值作为地图:

data "consul_key_prefix" "common" {
  path_prefix = "common/rules"
}
output "common"{
value = "${jsonencode(lookup(var.CommonRules,element(keys(var.CommonRules),1))) }"
}

$ 地形输出

common = "{name=service1,port=80,hcproto=http,hcport=80}"

但是当我尝试将其作为地图访问时,它不起作用:

output "common"{
value = "${lookup(jsonencode(lookup(var.CommonRules,element(keys(var.CommonRules),1))),"name") }"
}

$ 地形输出

(无回应)

我在这里尝试了一些事情 - 例如拆分这些值并将它们再次合并到一个列表中,然后运行"map"函数,但它也不起作用:

$ 地形输出

common = [
    name,
    service1,
    port,
    80,
    hcproto,
    http,
    hcport,
    80
]

然后尝试创建该列表的映射:

output "common2" {
value = "${map(split(",",join(",",split("=",lookup(var.CommonRules,element(keys(var.CommonRules),1))))))}"
}

但它也不起作用。

所以我的问题是 - 有没有人有他将字符串(或列表)翻译成地图的工作示例?

提前谢谢。

jsondecode即将

推出的Terraform v0.12中的功能将成为解决此问题的工具。

jsondecode函数 github 问题

相关内容

  • 没有找到相关文章

最新更新