Перенос существующих наборов данных BigQuery в Terraform

#terraform #terraform-provider-gcp

#terraform #terraform-provider-gcp

Вопрос:

Справочная информация:

Я новичок в Terraform, но активный пользователь BigQuery. У нас есть существующий проект BigQuery, в котором более 100 наборов данных, и мы хотим начать использовать Terraform для управления доступом (только на уровне набора данных, а не на уровне таблиц или столбцов), поскольку ручное назначение доступа с помощью пользовательского интерфейса больше не масштабируется. Наш план состоит в том, чтобы внедрить Terraform для 5 наборов данных и со временем добавлять наборы данных, чтобы в конечном итоге включить каждый набор данных в проект.

Проблема:

Я изо всех сил пытаюсь понять, как автоматически импортировать все эти наборы данных перед запуском terraform apply . Мой main.tf файл содержит 5 таких блоков:

 resource "google_bigquery_dataset" "dataset_1" {
  dataset_id    = "dataset_1"
  location      = local.location
  project       = local.project_id

  access {
    ...
  }
}
 

Есть ли способ запустить terraform import автоматический импорт всех наборов данных, перечисленных в main.tf ?

Примечания:

  • Я не хочу создавать или уничтожать какие-либо ресурсы, все наборы данных уже существуют.
  • terraform команды будут выполняться локально в macOS.

Комментарии:

1. Вероятно, вы могли бы импортировать наборы данных, но я не уверен, есть ли для этого массовое действие. Вот документация Terraform для импорта BigQuery: registry.terraform.io/providers/hashicorp/google/latest/docs /.

2. @MarkoE Да, я пробовал это, похоже, нет опции массового импорта. Кроме того, при полном развертывании я не хочу импортировать> 100 наборов данных при каждом запуске terraform команд. Было бы здорово, если бы была команда, чтобы увидеть, какие ресурсы находятся в main.tf файле, и импортировать только эти ресурсы.

3. Вы можете попытаться «захватить» состояние в определенный момент terraform state show и посмотреть, какие ресурсы присутствуют.

4. @MarkoE Как бы я это использовал? Я могу запустить terraform state show и просмотреть 5 наборов данных, которые я импортировал и успешно обновил через Terraform. Добавление 6-го набора данных не повлияет на содержимое terraform state show , если я не импортирую этот 6-й набор данных, что противоречит цели этого, которая заключается в автоматическом импорте наборов данных, перечисленных в main.tf файле.

5. Ах, хорошо, поэтому я не думаю, что вы можете импортировать ресурсы, просто перечисляя их внутри main.tf . IIRC, в более новых версиях может быть рассмотрено добавление автоматического добавления ресурсов на основе конфигурации из файла Terraform, если я вас правильно понял. terraform.io/docs/import/index.html#currently-state-only