繁体   English   中英

Terraform 使用 for_each 和 jsondecode 创建多个资源

[英]Terraform create multiple resources using for_each and jsondecode

我想创建多个资源(GCP 的多个 cloudSQL 实例),这就是我所拥有的:

locals {
  psql_settings = [
    { "name" : "psql1", "location" : "us-central1", "zone" : "us-central1-c" },
    { "name" : "psql2", "location" : "us-east1", "zone" : "us-east1-b" }
  ]
}

我必须以 json 格式使用它们,因为这将存储在 consul 中以进行动态更改。

使用这个locals值,我如何创建多个资源。 我在尝试:

module "postgresql-db" {
  depends_on = [
    module.vpc
  ]
  source               = "../modules/postgres"
  for_each             = local.psql_settings[0]
  name                 = each.value.name
  random_instance_name = true
  database_version     = "POSTGRES_13"
  project_id           = "xyz-project
  zone                 = each.value.zone
  region               = each.value.location
...
...

它应该是:

  for_each   = {for idx,val in local.psql_settings: idx => val}

该代码将您的地图列表更改为 map 地图,这是for_each所需的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM