You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCE Node API使用自定义网络创建无外部IP虚拟机异常

问题原因

你使用的@google-cloud/compute Node.js SDK的zone.createVM方法存在默认行为:当networkInterfaces中的网卡配置没有显式声明accessConfigs字段时,SDK会自动注入类型为ONE_TO_ONE_NAT的访问配置,为虚拟机分配外部公网IP。
云控制台导出的REST配置实际隐式包含了accessConfigs: []的配置项,只是导出展示时没有完全显示,所以才会出现配置看起来一致但实际创建效果不同的问题。

解决方法

在networkInterfaces对应的网卡配置中,显式添加accessConfigs: []即可禁止分配外部IP,修改后的代码片段如下:

const Compute = require('@google-cloud/compute');
const compute = new Compute();
const zone = compute.zone('us-central1-a');

const config = {
        machineType: machinetype,
        maintenancePolicy: 'MIGRATE',
        // 若不需要对外提供HTTP服务可关闭该配置,不影响无外部IP的生效逻辑
        // http: true,
        disks: [
          ...
        ],
        canIpForward: false,
        networkInterfaces: [
            {
                subnetwork: "projects/optum-80593/regions/us-central1/subnetworks/subnet-us-central1",
                // 显式设置访问配置为空数组,禁止分配外部IP
                accessConfigs: []
            }
        ], 
   ...
}

await zone.createVM(vmName, config).then(async (data) => {
验证说明

虚拟机创建完成后,可调用实例的getMetadata方法查询networkInterfaces属性,确认对应网卡的accessConfigs字段为空,即代表无外部IP配置生效。

内容的提问来源于stack exchange,提问作者daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:45:03