Terraform Topic资源已存在于各个项目中?怎么办呢?

问题描述 投票:0回答:2

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

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
google-cloud-platform terraform google-cloud-pubsub terraform-provider-gcp
2个回答
1
投票

主题的名称应该具有以下格式:

projects/<your_project>/topics/<your_topic_name>

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

希望能帮助到你。


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.