Terraform: одновременная маркировка ВСЕХ ЭКЗЕМПЛЯРОВ вычислений Google с помощью Terraform

У меня есть существующий проект, в котором запущены экземпляры. Я прошел аутентификацию в проекте, используя Terraform и файл учетных данных. Я предполагаю получить существующий ресурс, введя идентификатор проекта.

provider "google" {
  credentials = "${file("${var.path}/terraform-ma.json")}"

  project = "terraform-ma-2020"
  region  = "us-central1"
  zone    = "us-central1-b"
}



data "google_project" "project" {
}

output "project_id" {
  value = data.google_project.project.project_id

}

person Khushaboo    schedule 08.03.2020    source источник
comment
Как провайдер AWS делает это за вас? Что бы вы сделали с поставщиком AWS для этого? Можете ли вы отредактировать свой вопрос, включив его в качестве минимального воспроизводимого примера и объяснить, как это не работает для GCP провайдер?   -  person ydaetskcoR    schedule 08.03.2020


Ответы (1)


Вы можете импортировать существующие ресурсы GCP в файлы состояния Terraform, используя информацию из https://www.terraform.io/docs/import/index.html

person Francozen    schedule 09.03.2020
comment
Обязательно ли импортировать все ресурсы с помощью команды импорта Terraform? Terraform говорит, что вы можете получать данные, если у вас есть ДОСТУП к чему-либо. Единственное, что меня беспокоит, - это аутентификация в проекте через файл учетных данных с помощью Terraform, у нас есть доступ к проекту. Но для получения данных наш файл tfstate должен быть обновлен с учетом существующей / существующей инфраструктуры и чтобы блок данных мог получать данные из файла tfstate. Поэтому импорт важен ??? - person Khushaboo; 11.03.2020
comment
Я не уверен, что понимаю ваш вопрос. Вы можете использовать Terraform для создания ресурсов из файлов .tf. При импорте существующих ресурсов будет создан только файл .tfstate, но не файл. .tf файлы. Таким образом, вам придется работать с файлом состояния для создания файлов конфигурации. - person Francozen; 11.03.2020
comment
Я постараюсь переосмыслить свой вопрос. Короче говоря, если инфраструктура создается не через Terraform, то ИМПОРТ абсолютно необходим для управления и обновления существующей инфраструктуры, верно? Блок источника данных используется для извлечения информации из ресурсов, к которым у вас есть доступ. Если у меня есть доступ к проекту через учетные данные учетной записи служебного ключа. Означает ли это, что мы можем получить информацию о ресурсах этого проекта без использования команды IMPORT ?? Или для работы команды источника данных вам необходимо обновить файл .tfstate с существующей инфраструктурой? - person Khushaboo; 12.03.2020
comment
Вы можете импортировать существующую инфраструктуру, созданную вручную: да. Но не все типы ресурсов поддерживают импорт, если я правильно помню. - person Francozen; 12.03.2020