Как получить доступ к IP-адресу NAT подсчитываемого экземпляра google_compute_instance в блоке подключения? - PullRequest
1 голос
/ 20 июня 2020

Я пытаюсь создать несколько экземпляров с помощью count = number. Во время этого мне нужно получить доступ к IP-адресу созданного экземпляра, но я не могу получить доступ к атрибуту в l oop. Моя версия Terraform - 0.12.26.

Я пробовал несколько подходов, но ничего. Все работает, пока я не попытаюсь получить доступ к номеру созданного экземпляра через count.index. Это код:

resource "google_compute_instance" "test" {
  count        = 2
  name         = "test-${count.index}"
  
  # irrelevant stuff

  connection {
    host        = google_compute_instance.test.*.network_interface.0.access_config.0.nat_ip[count.index]
    
    # irrelevant stuff

Я также безуспешно пробовал советы отсюда: Как мне получить доступ к атрибуту из подсчитываемого ресурса в другом ресурсе?

Согласно этим сообщениям, которые я пробовал:

host = google_compute_instance.test[count.index].network_interface.0.access_config.0.nat_ip
host = element(google_compute_instance.test.*.network_interface.0.access_config.0.nat_ip, count.index)

Каждый раз, когда я получаю:

Error: Cycle: google_compute_instance.test[1], google_compute_instance.test[0]

Как мне получить доступ к IP-адресу NAT подсчитанного google_compute_instance в блоке подключения?

1 Ответ

3 голосов
/ 20 июня 2020

Поскольку у вас есть пример работы со ссылками на себя для одного ресурса, это должно работать для подсчитываемых ресурсов:

resource "google_compute_instance" "test" {
  count        = 2
  name         = "test-${count.index}"
  
  # irrelevant stuff

  connection {
    host        = self.network_interface.0.access_config.0.nat_ip
    
   # irrelevant stuff

self Object

Выражения в блоках connection нельзя ссылаться на родительский ресурс по имени. Вместо этого они могут использовать специальный объект self.

Объект self представляет родительский ресурс соединения и имеет все атрибуты этого ресурса. Например, используйте self.public_ip для ссылки на атрибут aws_instance s public_ip.

Собственный объект из документов настроек подключения Provisioner .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...