1

如何处理多个项目中存在的资源。在这种情况下,我有 2 个 TF 项目,并且在 google pubsub 中有一个共享主题。按照谷歌提供者文档,我在订阅者项目中创建了这个配置。但它给了我一个资源已经存在的错误。

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
4

2 回答 2

1

主题名称应采用以下格式:

projects/<your_project>/topics/<your_topic_name>

有关更多信息,您可以查看以下链接和/或尝试API explorer

希望能帮助到你。

于 2019-03-27T15:31:40.540 回答
0

实际上,正确的答案是我们需要在 terraform config 中使用变量来显式定义依赖关系。

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

通过研究插值表达式中使用的资源属性,Terraform 可以自动推断一种资源何时依赖于另一种资源

于 2019-04-18T01:13:08.310 回答