Как ссылаться на ресурсы GCP в terraform?

Я хотел бы понять ссылку на ресурсы в terraform.

Пример: В моем проекте тема pubsub упоминается как с .name, так и с .id.

  resource "google_pubsub_topic" "topic" {
      name = "my_topic"
  }

resource "google_pubsub_subscription" "subscription" {
  name  = "my_subscription"
  topic = google_pubsub_topic.topic.name
  }

 resource "google_cloudiot_registry" "cloudiot" {
  name      = "my_iot_registry"
  region    = "us-central1"
  log_level = "ERROR"

  event_notification_configs {
    pubsub_topic_name = google_pubsub_topic.topic.id
  }

  mqtt_config = {
    mqtt_enabled_state = "MQTT_ENABLED"
  }
}

Я не мог получить информацию о разнице в обращении по .name/.id на многих онлайн-форумах.

На какие ресурсы, использующие terraform, нам нужно ссылаться по .name и .id?

Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
0
0
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Такого жесткого понятия ссылки не существует, это похоже на аномалию использования, специфичную для этого ресурса.

Я думаю, это должно быть

event_notification_configs {
    pubsub_topic_id = google_pubsub_topic.topic.id
}

Из google_cloudiot_registry я вижу, что id возвращается ресурсом, который содержит имя ресурса, и то же самое передается pubsub_topic_name части event_notification_configs блока.

Если вы хотите изменить pubsub_topic_name на pubsub_topic_id, вы можете создать PR на кодовой базе провайдер.

В заключение, если вы хотите сослаться на вывод какого-либо ресурса/источника данных, вам нужно будет получить атрибуты, возвращенные в ответе, и назначить их соответствующему полю в следующем ресурсе.

Другие вопросы по теме