[英]Terraform create multiple resources using for_each and jsondecode
I want to create multiple resource(GCP's multiple cloudSQL instances) and this is what I have:我想创建多个资源(GCP 的多个 cloudSQL 实例),这就是我所拥有的:
locals {
psql_settings = [
{ "name" : "psql1", "location" : "us-central1", "zone" : "us-central1-c" },
{ "name" : "psql2", "location" : "us-east1", "zone" : "us-east1-b" }
]
}
I have to use them in json format because this will be stored in consul for dynamic changes.我必须以 json 格式使用它们,因为这将存储在 consul 中以进行动态更改。
Using this locals
value, how I can create multiple resources.使用这个locals
值,我如何创建多个资源。 I am trying:我在尝试:
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
...
...
It should be:它应该是:
for_each = {for idx,val in local.psql_settings: idx => val}
The code changes your list of maps, into map of maps, which is required by for_each
.该代码将您的地图列表更改为 map 地图,这是for_each
所需的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.