Tearraform 列出 GCS 存储桶中的文件

时间:2021-06-17 05:43:49

标签: google-cloud-platform google-bigquery terraform google-cloud-storage

我有一个带有多个嵌套镶木地板文件的 gcs 存储桶。我想在 BQ 中将镶木地板文件查看为外部表

例如:

path1 >> path2 >> path3 >> path4 >> *.parquet
path11 >> path22 >> path33 >> *.parquet

有没有办法可以使用 terraform 列出 gcs uri?然后在 terraform 中使用 gcs_uri 写成这样:

variable my_table_config {
  default = {
    first_table  = { gcs_path = "path11/path22/path33/*.parquet"}
    second_table = { gcs_path = "path1/path2/path3/path3/path4/*.parquet"}
  }
}

resource "google_bigquery_dataset" "my_dataset" {
   # create table
}


resource "google_bigquery_table" "my_dataset_external_tables" {
  dataset_id  = google_bigquery_dataset.my_dataset.dataset_id
  for_each    = var.my_table_config # start loop here
  table_id    = each.key

  external_data_configuration {
    autodetect    = true
    source_format = "PARQUET"
    ignore_unknown_values = true
    source_uris = [
      "gs://my-gcs-bucket/${(each.value).gcs_path}" # get path of parquet files
    ]
  }
  project = var.project
}

如果我有少量的 gcs_uri(我可以附加在 my_table_config 中),上述 terraform 将起作用。但我有成千上万的 gcs_uri 要做。我正在寻找自动检索 gcs_uri 的东西。请帮忙。谢谢。

0 个答案:

没有答案