Terraform:如果子网不存在,则将接口设置为空

Terraform: If subnetwork does not exist, set interface to null

我正在创建一个自定义模块,用于在 GCP 中创建多 nic VM。在部署时,可能会有 VM 不需要使用多个接口的情况。

如果子网不存在,是否可以将network_interface设置为空值?如果可能,我想避免为每个接口数创建多个模块。


resource "google_compute_instance" "vm" {
  name                      = "${var.vm_name}"
  machine_type              = "${var.machine_type}"
  zone                      = "${var.zone}"
  min_cpu_platform          = "${var.cpu_platform}"

  network_interface {
    subnetwork    = "${google_compute_subnetwork.subnetwork1.name}"
  }
  network_interface {
    subnetwork    = "${google_compute_subnetwork.subnetwork2.name}"
  }

  network_interface {

// PSEUDO CODE
    subnetwork   = if (subnetwork3 == true) {
                      "${google_compute_subnetwork.subnetwork3.name}"
                   else 
                      "do nothing or set null"
  }
}

你能把 localscount 结合起来吗?

示例

locals {
  interface_num = "${var.is_subnetwork_3 ? 0 : 3}"
}

resource "google_whatever" "name" {
  count = "${local.interface_num}"
  // config
}