【问题标题】:Terraform Topic resource already exists in across projects? How to handle this?Terraform 主题资源是否已存在于跨项目中?如何处理?
【发布时间】:2019-08-17 13:24:36
【问题描述】:

如何处理多个项目中存在的资源。在这种情况下,我有 2 个 TF 项目,并且在 google 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


    【解决方案1】:

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

    projects/<your_project>/topics/<your_topic_name>
    

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

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2017-06-10
        • 2019-08-04
        • 1970-01-01
        • 2020-08-08
        • 2021-01-03
        • 2021-06-29
        • 2014-12-14
        • 2020-04-16
        相关资源
        最近更新 更多