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

如何在Google App Engine代码中查询运行实例数量及当前实例唯一ID

GAE Node.js 应用需求实现方案

获取当前运行实例的唯一ID

GAE会在运行时自动注入对应的环境变量,直接读取即可,兼容标准环境与灵活环境的代码如下:

// 标准环境取GAE_INSTANCE,灵活环境取GAE_INSTANCE_ID,本地调试加兜底
const currentInstanceId = process.env.GAE_INSTANCE || process.env.GAE_INSTANCE_ID || 'local-dev';

查询当前所有运行的实例总数

需要调用App Engine Admin API实现,操作步骤如下:

  1. 先给GAE默认服务账号授予App Engine Viewer权限,确保有实例查询权限
  2. 安装官方依赖包:
npm install @google-cloud/appengine-admin
  1. 参考代码实现:
const { AppEngineAdmin } = require('@google-cloud/appengine-admin');

const client = new AppEngineAdmin();
// 以下环境变量GAE会自动注入,无需手动配置
const projectId = process.env.GOOGLE_CLOUD_PROJECT;
const serviceId = process.env.GAE_SERVICE || 'default';
const versionId = process.env.GAE_VERSION;

async function getRunningInstanceTotal() {
  const [instanceList] = await client.projects.services.versions.instances.list({
    parent: `projects/${projectId}/services/${serviceId}/versions/${versionId}`,
  });
  // 过滤出运行中状态的实例
  const runningList = instanceList.filter(item => item.state === 'RUNNING');
  return runningList.length;
}

// 调用示例
getRunningInstanceTotal().then(count => {
  console.log('当前运行实例总数:', count);
}).catch(err => {
  console.error('查询失败:', err);
});

注意事项

  • 如果需要查询所有服务/所有版本的实例总数,遍历对应服务、版本列表调用接口汇总即可
  • 实例数会随负载动态伸缩,查询结果仅代表调用时刻的数值,存在秒级延迟
  • 本地调试时需要先通过gcloud auth application-default login配置本地身份凭据,否则会报权限错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 14:09:02