如何处理多个项目中现有的资源。在这种情况下,我有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
答案 0 :(得分:1)
主题名称应采用以下格式:
projects/<your_project>/topics/<your_topic_name>
有关更多信息,您可以检查以下link和/或尝试使用API explorer。
希望有帮助。
答案 1 :(得分:0)
实际上,正确的答案是我们需要使用变量在terraform配置中显式定义依赖项。
https://learn.hashicorp.com/terraform/getting-started/dependencies.html
通过研究插值表达式中使用的资源属性,Terraform可以自动推断何时一种资源依赖于另一资源