【问题标题】:GCP compute_engine network interface terraform errorGCP计算引擎网络接口地形错误
【发布时间】:2019-01-24 07:46:24
【问题描述】:

我的 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:创建网络接口时出错:必须提供网络或子网之一

请帮帮我

【问题讨论】:

  • 错误解释了它。您只能使用networksubnetwork,不能同时使用。
  • 是的。当我使用network 时。它给出了错误提及google_compute_instance.virtual_instance:创建实例时出错:googleapi:错误400:字段'resource.networkInterfaces [0]'的值无效:''。应为自定义子网模式网络指定子网,无效。但是当我选择自定义subnetwork 时,它才成功。谢谢 ydaetskcoR

标签: google-compute-engine terraform terraform-provider-gcp


【解决方案1】:

感谢@ydaetskcoR。如果您选择network_interface 的自定义值。您不能同时提及networksubnetwork。您将只选择下面提到的subnetwork 值。

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

【讨论】:

  • 遇到了类似的问题并尝试了该解决方案但没有解决,原来我的子网名称错误。
猜你喜欢
  • 2020-07-23
  • 1970-01-01
  • 2017-12-10
  • 2019-01-10
  • 2018-07-30
  • 2019-10-18
  • 1970-01-01
  • 1970-01-01
  • 2016-07-06
相关资源
最近更新 更多