【问题标题】:Terraform and GCP - Create new Compute VM in existing Shared VPC and SubnetTerraform 和 GCP - 在现有的共享 VPC 和子网中创建新的计算 VM
【发布时间】:2022-01-21 20:02:00
【问题描述】:

如何创建新的计算实例并将其与现有的共享 VPC/子网关联?共享的 VPC/子网已存在于另一个项目中。

我的 TF 块:

resource "google_compute_instance" "computevm1" {
  name                      = "test-compute-vm1"
  zone                      = "us-west1-a"
  machine_type              = "e2-standard-1"

  network_interface {
    network = "isolated-vpc"
  }
  boot_disk {
    initialize_params {
      image = "ubuntu-2004-focal-v20211212"
      size  = 20
    }
  }
}

我得到的错误:

The referenced network resource cannot be found., invalid

【问题讨论】:

    标签: google-cloud-platform terraform terraform-provider-gcp


    【解决方案1】:

    对于 HCL 属性 network,指定要在其中创建实例的项目中的 VPC 的网络名称。将自动从区域中选择子网。创建实例时,共享 VPC 没有什么特别之处。

    假设您的共享 VPC 在默认网络上启用:

    network_interface {
      network = "default"
    }
    

    如果不同,请更改名称。

    【讨论】:

    • 这没有意义。我有一个已经在另一个项目中创建的网络,并与我正在创建这个新实例的项目共享。 Terraform 如何知道将新实例与共享网络相关联?并且将“默认”设置为无效。 Error 400: Invalid value for field 'resource.networkInterfaces[0].network': 'projects/project-name/global/networks/default'. The referenced network resource cannot be found
    • @BenVek 使用正在创建 VM 实例的网络的实际名称。该网络必须已经存在。 VM 不关心共享/对等网络。只需在 HCL 中选择正确的网络即可。
    • 共享网络已经存在。我确实包含了网络名称并得到了同样的错误。 network_interface { network = "NAME OF SHAREDVPC" }
    • @BenVek - 你的名字有问题。在您的问题中,列出您在其中创建 VM 的项目中所有网络的实际名称。 屏蔽名称没有安全优势。在您的问题和 cmets 中使用实际值。
    • 共享 VPC 网络名称为“isolated-vpc” 子网名称为“isolated-net”network_interface { network = "isolated-vpc" }
    猜你喜欢
    • 2021-09-02
    • 2023-02-24
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 2018-07-29
    相关资源
    最近更新 更多