使用terraform 0.12函数从地图列表中获取值

时间:2020-03-17 21:30:17

标签: terraform

使用Auth0 provider,我需要创建一个custom_domain。为了对其进行验证,用户需要使用在此过程中生成的CNAME创建DNS记录。 verification资源在tfstate文件中如下所示:

"verification": [
  {
    "methods": [
      {
        "name": "cname",
        "record": "some-random-cname.auth0.com"
      }
    ]
  }
],
  • 到目前为止,我已经能够获取地图元组(根据tfstate文件),但仍然无法获得record

resource "auth0_custom_domain" "main" {
  domain              = "custom.example.com"
  type                = "auth0_managed_certs"
  verification_method = "txt"
}

locals {
  something = flatten(auth0_custom_domain.main.verification[*].methods)
}

output "my-local" {
  value = local.something
}
  • 输出如下:
my-local = [
  {
    "name" = "cname"
    "record" = "some-random-cname.auth0.com"
  },
]
  • 似乎我已经很接近获得该记录并将其用作route53条目的输入,但是我仍然无法获得它,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

正如ydaetskcoR所建议的那样,这就是我设法解决的方法,但是在我看来,它太复杂了,所以我想看看是否有人有比这更好的解决方案:

something = lookup(element(flatten(auth0_custom_domain.main.verification[*].methods), 0), "record")