Terraform Тема ресурс уже существует в разных проектах?Как справиться с этим? - PullRequest
0 голосов
/ 27 марта 2019

Как обращаться с ресурсами, существующими в нескольких проектах.В этом случае у меня есть 2 проекта TF и ​​общая тема в google pubsub.Следуя документам google provider , я создал эту конфигурацию в проекте подписчика.Но это дает мне ресурс, уже существует ошибка.

resource "google_pubsub_topic" "item_edited" {
  project = "listing-dev"
  name    = "item_edited"
}

Так что этот ресурс уже существует в каком-то другом проекте, но, следуя инструкциям, я создал его и для нашего собственного проекта.

resource "google_pubsub_subscription" "item_edited" {
  name    = "item_edited_subscription"
  topic   = "${google_pubsub_topic.item_edited.id}"
  project = "${module.offer-dev.gcp_project_id}"
}

Ошибка:

Error: Error applying plan:

1 error(s) occurred:

* google_pubsub_topic.item_edited: 1 error(s) occurred:

* google_pubsub_topic.item_edited: googleapi: Error 409: Resource already exists in the project (resource=item_edited)., alreadyExists

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Название темы должно иметь следующий формат:

projects/<your_project>/topics/<your_topic_name>

Для получения дополнительной информации вы можете проверить следующую ссылку и / или попробовать API explorer .

Надеюсь, это поможет.

0 голосов
/ 18 апреля 2019

На самом деле правильный ответ - нам нужно использовать переменные для явного определения зависимости в конфигурации terraform.

https://learn.hashicorp.com/terraform/getting-started/dependencies.html

Изучая атрибуты ресурса, используемые в выражениях интерполяции, Terraform может автоматически определить, когда один ресурс зависит от другого

...