通过 Terraform 配置没有外部 IP 的 GCP VM 实例

Provision a GCP VM instance with no external IP via Terraform

正在尝试通过 Terraform 在 GCP 中创建虚拟机,外部 IP 为 None。

network_interface {
  network = "projects/other-project-name/global/networks/network-name"
  subnetwork = "projects/other-project-name/regions/us-central1/subnetworks/subnet-name"
  access_config {
    nat_ip = "None"
  }
}  

但是 nat_ip = "None" 是该字段的无效值。如果我这样做 nat_ip = "",它会自动分配外部 IP。
这是他们的文档:https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_instance#nat_ip

要通过 terraform 在没有 外部 IP 的情况下在 GCP 中创建虚拟机,您可以省略 network_interface 块中的 access_config 部分,如文档所述 here。所以你只需要:

network_interface {
  network = "projects/other-project-name/global/networks/network-name"
  subnetwork = "projects/other-project-name/regions/us-central1/subnetworks/subnet-name"
}

我确认上述行为,如 LundinCast 所述。就我而言,我没有看到为我使用 Terraform 创建的 VM 配置的外部 IP。我在 network_interface 部分下添加了空白 access_log 块,并配置了外部 ip。

network_interface {
      network = "default"
      access_config {
      }
    }

google 提供商的最新更新发生了一些变化,我无法解决这个问题,直到我将网络层级降级为标准,与网络层级 PREMIUM(默认)的任何其他组合或块的遗漏导致具有临时 IP 的 VM

access_config {
      nat_ip = ""
      network_tier = "STANDARD"
}