【发布时间】:2020-11-09 17:44:18
【问题描述】:
我有以下 tf 文件:
locals {
schemas = {
"ODS" = {
usage_roles = ["TRANSFORMER"]
}
"EXT" = {
usage_roles = []
}
"INT" = {
usage_roles = ["REPORTER"]
}
"DW" = {
usage_roles = ["LOADER"]
}
}
}
resource "snowflake_schema" "schema" {
for_each = local.schemas
name = each.key
database = ???????
usage_roles = each.value.usage_roles
}
我想保持本地人的原样(每个模式的不同 usage_roles 并在此处硬编码),同时将多个值作为每个模式的数据库。在伪代码中是:
for database in ['db_1', 'db_2', 'db_3']:
resource "snowflake_schema" "schema" {
for_each = local.schemas
name = each.key
database = database
usage_roles = each.value.usage_roles
}
这样我们在三个不同的数据库中拥有相同的架构资源。我已经阅读了一些文章,这些文章使我相信可以进行此循环但预先分配所有值,这意味着我必须将 usage_roles 放在一个列表或其他东西中,而不是在本地硬编码,我认为这是可读性较差。例如: Terraform - how to use for_each loop on a list of objects to create resources
我所要求的甚至可能吗?如果是这样,怎么做?提前非常感谢您
【问题讨论】:
标签: terraform