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

GCE通过Node.js API批量创建VM仅成功2台问题咨询

报错原因
  • IN_USE_ADDRESSES是GCP项目在单区域的公网IP(包含临时公网IP、静态公网IP)总配额限制,你触发的报错说明us-central1区域当前已使用的公网IP数量已经达到8个的上限,无法再分配新的公网IP给新建的VM。
  • 你看到的API返回正常、日志打印创建成功是假成功:zone.createVM返回的是异步创建操作的初始响应,你没有等待异步操作执行完成就打印了成功日志,配额校验、资源分配等步骤是在后续异步执行的,超限后创建任务会直接失败,不会在控制台生成实例。最终成功创建2台是因为这2台刚好占用了剩余的可用公网IP配额,其余任务均因IP不足创建失败。
解决办法
  • 先核查现有IP使用情况:进入GCP控制台「IAM与管理」-「配额」页面,筛选区域为us-central1、配额指标为IN_USE_ADDRESSES,确认当前已使用量和上限值。
  • 若VM不需要公网访问能力,在创建VM的配置中关闭公网IP分配,不会占用公网IP配额,修改config配置如下:
const config = {
  // 原有其他配置保留
  networkInterfaces: [{
    network: 'global/networks/default', // 替换为你实际使用的VPC
    subnetwork: 'regions/us-central1/subnetworks/default', // 替换为你实际使用的子网
    accessConfigs: [] // 空数组代表不分配公网IP
  }]
}
  • 若VM需要公网IP,可先清理区域内闲置的静态/临时公网IP,释放配额后再创建实例;如果业务确实需要更多公网IP,可在配额页面提交IN_USE_ADDRESSES配额提升申请,审核通过后即可使用更多IP。
  • 修正你的创建代码逻辑,等待异步操作完成后再判断创建结果,避免假成功日志:
// this is called multiple times with different vmNames:
const Compute = require('@google-cloud/compute');
const compute = new Compute();
const zone = compute.zone('us-central1-a');
try {
  const [vm, operation, apiResponse] = await zone.createVM(vmName, config);
  // 等待异步创建操作完成
  await operation.promise();
  const vmid = apiResponse.id;
  console.log('created vm ' + vmid);
} catch (err) {
  console.error('create vm failed:', err.message);
}

内容的提问来源于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 12:39:04