【问题标题】:Switching to terraform module for google pubsub recreating the topic and subscription切换到用于谷歌 pubsub 重新创建主题和订阅的 terraform 模块
【发布时间】:2022-07-27 23:20:59
【问题描述】:

我正在尝试切换到GCP pubsub module,但在 terraform 计划中显示主题资源将被重新创建,即使变量完全相同。这些资源是否可能至少主题不需要重新创建?

新方式
module "pubsub" {
  source  = "terraform-google-modules/pubsub/google"
  version = "~> 1.8"

  topic        = "topic_name"
  create_topic = false
  project_id   = local.project_id

  pull_subscriptions = [
    {
      name                    = "sub_name"
      ack_deadline_seconds    = 10
    }
  ]

  topic_labels  = {
    app = "l1"
  }

  subscription_labels = {
    app = "l1"
  }
}
老办法
resource "google_pubsub_topic" "topic" {
  name = "topic_name"
  labels = {
    app = "l1"
  }
}

resource "google_pubsub_subscription" "sub" {
  name  = "sub_name"
  topic = google_pubsub_topic.topic.name

  labels = {
    app = "l1"
  }

  ack_deadline_seconds = 10
}

【问题讨论】:

    标签: google-cloud-platform terraform terraform-provider-gcp


    【解决方案1】:

    这是不一样的,因为旧方法使用resource 块,而新方法使用module 块。这意味着状态文件中的地址将会改变。为了避免这种情况,您可以导入已经创建的主题和订阅模块。如何将现有资源导入模块 [1] 的示例:

    terraform import module.foo.aws_instance.bar i-abcd1234
    

    在将某些东西导入模块的情况下,语法如下:

    module.<module name>.<resource type>.<logical name>
    

    现在,就您而言,对于主题 [2],大致如下:

    terraform import module.pubsub.google_pubsub_topic.topic <topic id>
    

    对于订阅 [3]:

    terraform import module.pubsub.google_pubsub_subscription.pull_subscriptions <subscription id>
    

    可以在 [4] 中找到一个主题可以接受 ID 的示例。可以在 [5] 中找到关于订阅可接受 ID 的示例。


    [1]https://www.terraform.io/cli/commands/import#example-import-into-module

    [2]https://github.com/terraform-google-modules/terraform-google-pubsub/blob/master/main.tf#L93

    [3]https://github.com/terraform-google-modules/terraform-google-pubsub/blob/master/main.tf#L197

    [4]https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/pubsub_topic#import

    [5]https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/pubsub_subscription#import

    【讨论】:

      猜你喜欢
      • 2020-07-23
      • 2021-04-11
      • 2018-11-17
      • 1970-01-01
      • 2021-09-28
      • 2022-08-03
      • 2014-04-22
      • 2021-03-17
      • 1970-01-01
      相关资源
      最近更新 更多