在 Google Compute Engine 中创建 VM 实例时出错

Jim*_*Jim 9 google-compute-engine

我正在尝试按照谷歌云平台控制台上的教程使用计算引擎创建 MongoDB 应用程序。我按照创建 VM 的教程进行操作,但未创建它们并返回以下错误:

字段“resource.networkInterfaces[0].network”的无效值:“”。找不到引用的网络资源。

知道这可能是什么吗?我之前没有创建任何虚拟机,所以我不确定这是什么。我没有使用命令行,而是使用控制台来执行此操作。

小智 8

我刚刚在尝试在新项目上创建 VM 时遇到了同样的事情。看起来谷歌在配置新项目(至少是计算引擎网络的东西)时遇到了问题。

您必须手动创建默认网络。以下是如何做到这一点:

激活 Google Cloud Shell(Cloud Console 网站右上角的按钮),然后运行以下命令:

gcloud compute networks create default
gcloud compute firewall-rules create default-allow-icmp --network default --allow icmp --source-ranges 0.0.0.0/0
gcloud compute firewall-rules create default-allow-ssh --network default --allow tcp:22 --source-ranges 0.0.0.0/0
gcloud compute firewall-rules create default-allow-internal --network default --allow tcp:0-65535,udp:0-65535,icmp --source-ranges 10.128.0.0/9
Run Code Online (Sandbox Code Playgroud)

之后,您应该能够创建 VM。

另一种选择是向 Google 投诉。这不是正常行为。


Man*_*nnu 8

添加这个:

--subnet "default"

为我工作。网络(子网)在我的例子中已经存在(与@Ray 的情况不同)因此只提到子网的名称(一般默认)有帮助。


小智 5

Terraform、Juju 等会给你一个错误:

错误 400:字段“resource.networkInterfaces[0]”的值无效:“”。应为自定义子网模式网络指定子网,无效

实际问题是subnet-mode

谷歌文档:

https://cloud.google.com/sdk/gcloud/reference/compute/networks/create

gcloud compute networks create NAME --subnet-mode=MODE

--subnet-mode=MODE 网络的子网模式。如果未指定,则默认为 AUTO。模式必须是以下之一:

auto- 子网是自动创建的。这是推荐的选择。

custom- 手动创建子网。

https://cloud.google.com/sdk/gcloud/reference/compute/networks/list

要检查子网模式,请使用:gcloud compute networks list

NAME            SUBNET_MODE  BGP_ROUTING_MODE  IPV4_RANGE  GATEWAY_IPV4
default         AUTO         REGIONAL
vpc-01          CUSTOM       GLOBAL
vpc-02          CUSTOM       GLOBAL
vpc-03          CUSTOM       GLOBAL
Run Code Online (Sandbox Code Playgroud)

只有当您使用“自动”模式时,这才能解决问题,感谢@Ray Pitmon