Ошибка терраформирования сетевого интерфейса GCP Compute_engine

Мой файл terraform выглядит так:

resource "google_compute_instance" "virtual_instance" {
  name = "${var.instance_name}"
  machine_type = "${var.instance_type}"
  zone = "${var.zone}"
  lifecycle {
    ignore_changes = ["boot_disk.0.initialize_params.0.image"]
  }
  boot_disk {
    initialize_params {
      image = "ubuntu-os-cloud/ubuntu-1604-lts"
      size = "30"
      type = "pd-standard"
    }
  }
  network_interface {
    network = "default"
    access_config {}
  }

  attached_disk {
    source = "${google_compute_disk.managed_data_disk.name}"
    mode = "READ_WRITE"
  }
  metadata {
  }
}

Этот приведенный выше код создал экземпляр. Но когда я изменяю блок network_interface, как указано ниже

  network_interface {
    network = "${module.vpc.vpc_name}"
    subnetwork = "${module.vpc.subnet_name}"
    access_config {}
  }

Модуль VPC:

resource "google_compute_network" "vpc" {
 name                    = "${var.name}-vpc"
 auto_create_subnetworks = "false"
}

resource "google_compute_subnetwork" "subnet_public" {
    name = "${var.subnet_name_public}"
    ip_cidr_range = "${var.subnet_cidr_public}"
    network = "${var.name}-vpc"
    depends_on    = ["google_compute_network.vpc"]
    region      = "${var.region}"
}

resource "google_compute_firewall" "firewall" {
  name    = "${var.name}-firewall"
  network = "${google_compute_network.vpc.name}"

  allow {
    protocol = "icmp"
  }

  allow {
    protocol = "tcp"
    ports    = ["22"]
  }

  source_ranges = ["0.0.0.0/0"]
}

когда я изменил network_interface на пользовательские значения. Выдает ошибку

google_compute_instance.virtual_instance: ошибка при создании сетевых интерфейсов: необходимо указать только одну сеть или подсеть

Пожалуйста помоги мне с этим


person Sathish Narayanan    schedule 17.08.2018    source источник
comment
Ошибка объясняет это. Вы можете использовать только network или subnetwork, но не оба.   -  person ydaetskcoR    schedule 17.08.2018
comment
Да. Когда я использовал network. это дает упоминание об ошибке google_compute_instance.virtual_instance: Ошибка создания экземпляра: googleapi: Ошибка 400: Недопустимое значение для поля 'resource.networkInterfaces[0]': ''. Подсеть должна быть указана для пользовательской сети в режиме подсети, неверно. Но когда я выбираю пользовательский subnetwork, он работает только успешно. Спасибо, ydaetskcoR.   -  person Sathish Narayanan    schedule 20.08.2018


Ответы (1)


Заранее спасибо @ydaetskcoR. Если вы выберете пользовательские значения network_interface. Нельзя упоминать одновременно network и subnetwork. Вы выберете только subnetwork значения, указанные ниже.

network_interface {
    subnetwork = "${module.vpc.subnet_name}"
    access_config {}
}
person Sathish Narayanan    schedule 20.08.2018
comment
У меня была аналогичная проблема, и я попробовал это решение, но оно не решило ее, оказалось, что я неправильно указал имя подсети. - person Didi Kohen; 21.02.2021