google-bigquery - 单独的 JSON 文件中的 Terraform Bigquery 表架构

标签 google-bigquery terraform

我知道我们可以在 Terraform 文件中定义表架构。我的问题是,有没有一种方法可以在单独的文件中定义模式,然后 Terraform 在运行时将其导入。这样它将提供更好的管理和可读性

 resource "google_bigquery_table" "default" {
 dataset_id = google_bigquery_dataset.default.dataset_id
 table_id   = "bar"

  time_partitioning {
   type = "DAY"
  }

 labels = {
  env = "default"
  }

 **schema = <<EOF
[
 {
   "name": "permalink",
   "type": "STRING",
   "mode": "NULLABLE",
   "description": "The Permalink"
 }
]** 
EOF

}

所以基本上我要问的是如何将模式部分移动到单独的文件并在运行时 TF 导入它。

最佳答案

如果模式不会动态生成,那么您可以使用文件 function为此目的:

schema = file("${path.module}/nested_path_to/schema.json")

架构.json:

[
  {
    "name": "permalink",
    "type": "STRING",
    "mode": "NULLABLE",
    "description": "The Permalink"
  }
]

如果模式将动态生成,那么您应该使用模板文件 function为此目的:

schema = templatefile("${path.module}/nested_path_to/schema.json.tmpl", { variable_name = variable_value } )

关于google-bigquery - 单独的 JSON 文件中的 Terraform Bigquery 表架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70425085/

相关文章:

google-bigquery - 如何列出项目中的所有表大小

google-bigquery - 如何通过 CAST 更改 BigQuery 中嵌套字段的类型?

java - 将嵌套的 BigQuery 数据导出到云存储

amazon-web-services - Aws ecs fargate 可用性区如何工作?

google-bigquery - BigQuery 标准 SQL 自动将左连接中的 null 替换为零

sql - 如何从 BigQuery SQL 中的纪元时间提取日期

azure - 如何在Azure azurerm_virtual_network_gateway资源中设置 "bgp_settings" block ?

Terraform 模块无法访问变量

amazon-web-services - 如何在 EFS 上创建文件夹?

azure - 从 Azure Key Vault 访问多个 key 作为数据源