基于模块的变量有条件地调用 Terraform 资源



假设我有两个模块需要相同的源(append_only_history_bq_tables)(. 它们的区别只是from_dwh_core默认设置为false

module "dwh_core_append_only_history_tables" {
source            = "../append_only_history_bq_tables"
gcp_project       = var.gcp_project
bq_location       = var.bq_location
dataset_id        = google_bigquery_dataset.jago_pagerduty.dataset_id
module_base_path  = path.module
tables = {
"list_incident"             = { "business_key_columns" = "id", "partition_type" = "DAY" },
"raw_incident_information"  = { "business_key_columns" = "id", "partition_type" = "DAY" }
}
}

module "daily_closing_balance" {
source           = "../append_only_history_bq_tables"
gcp_project      = var.gcp_project
bq_location      = var.bq_location
dataset_id       = google_bigquery_dataset.dwh_core_dataset.dataset_id
module_base_path = path.module
use_source_ord   = false
from_dwh_core    = true
tables = {
"daily_closing_balance"    = { "business_key_columns" = "full_date,account_number,customer_id", "partition_type" = "DAY" }
}
depends_on = [google_bigquery_dataset.dwh_core_dataset]
}

append_only_history_bq_tables包含这个资源

resource "google_bigquery_table" "dwh_core_snapshot_daily" {
for_each = var.tables
dataset_id = var.dataset_id
project = var.gcp_project
table_id = "${each.key}_snapshot_current_daily"
schema = file("${local.schema_def_folder}/${each.key}.json")
deletion_protection=false
} 

如何有条件调用dwh_core_snapshot_dailyfrom_dwh_core变量设置为true

?谢谢你的帮助

可以使用条件表达式:

resource "google_bigquery_table" "dwh_core_snapshot_daily" {
for_each = var.from_dwh_core == true ? var.tables : {}
dataset_id = var.dataset_id
project = var.gcp_project
table_id = "${each.key}_snapshot_current_daily"
schema = file("${local.schema_def_folder}/${each.key}.json")
deletion_protection=false
} 

相关内容

  • 没有找到相关文章

最新更新