gcp-metadata

中文文档
9.2.3发布于 2026/10/29Apache-2.0TypeScriptCommonJS近 30 天下载 4.5亿

从谷歌云平台环境获取元数据

中文使用文档
文档目录10 节
  1. 快速启动
  2. 安装客户端库
  3. 使用客户端库
  4. 照顾大量有价值的财产
  5. 环境变量
  6. 样本
  7. 支持的节点.js版本
  8. 版本
  9. 捐款
  10. 许可证

Google Cloud Platform logo

GCP 元数据: Node.js 客户端

release level npm version

从谷歌云平台环境获取元数据

各版本的更改一览表载于 变化。 。 。 .

更多信息,请访问Cloud APIs的客户端库,包括老年人 Google APIs 客户端图书馆, in 客户端图书馆解释。 。 。 .

目录 :

快速启动

安装客户端库

npm install gcp-metadata

使用客户端库

const gcpMetadata = require('gcp-metadata');

async function quickstart() {
  // check to see if this code can access a metadata server
  const isAvailable = await gcpMetadata.isAvailable();
  console.log(`Is available: ${isAvailable}`);

  // Instance and Project level metadata will only be available if
  // running inside of a Google Cloud compute environment such as
  // Cloud Functions, App Engine, Kubernetes Engine, or Compute Engine.
  // To learn more about the differences between instance and project
  // level metadata, see:
  // https://cloud.google.com/compute/docs/storing-retrieving-metadata#project-instance-metadata
  if (isAvailable) {
    // grab all top level metadata from the service
    const instanceMetadata = await gcpMetadata.instance();
    console.log('Instance metadata:');
    console.log(instanceMetadata);

    // get all project level metadata
    const projectMetadata = await gcpMetadata.project();
    console.log('Project metadata:');
    console.log(projectMetadata);
  }
}

quickstart();

检查是否可用的元数据服务器

const isAvailable = await gcpMetadata.isAvailable();

访问所有元数据

const data = await gcpMetadata.instance();
console.log(data); // ... All metadata properties

访问特定属性

const data = await gcpMetadata.instance('hostname');
console.log(data); // ...Instance hostname
const projectId = await gcpMetadata.project('project-id');
console.log(projectId); // ...Project ID of the running instance

访问有相对路径的嵌入属性

const data = await gcpMetadata.instance('service-accounts/default/email');
console.log(data); // ...Email address of the Compute identity service account

访问带有查询参数的特定属性

const data = await gcpMetadata.instance({
  property: 'tags',
  params: { alt: 'text' }
});
console.log(data) // ...Tags as newline-delimited list

使用自定义信头的访问

await gcpMetadata.instance({
  headers: { 'no-trace': '1' }
}); // ...Request is untraced

照顾大量有价值的财产

在某些情况下,元数据服务返回的价值财产数目可能是: 太大不能作为 JavaScript 数字来代表 。 在这种情况下,我们返回 这些值为: BigNumber 对象(来自 大数.js 图书馆)。 数字 符合 JavaScript 数字范围的文本将作为正常数字返回 数值.

const id = await gcpMetadata.instance('id');
console.log(id)  // ... BigNumber { s: 1, e: 18, c: [ 45200, 31799277581759 ] }
console.log(id.toString()) // ... 4520031799277581759

环境变量

  • GCE_METADATA_HOST: 提供替代主机或IP来进行针对的搜索(例如,您正在通过自定义代理服务器连接).

    例如:

    export GCE_METADATA_HOST='169.254.169.254'
    
  • DETECT_GCP_RETRIES: 数字表示在元数据检索中应尝试的重试次数.

  • DEBUG_AUTH: 发送调试日志

  • METADATA_SERVER_DETECTION:配置想要的元数据服务器可用性检查行为.

    • assume-present:不要试图浏览元数据服务器,但假设它存在
    • none: 不要尝试浏览元数据服务器, 但不要尝试使用它
    • bios-only:将BIOS探测器的结果作为犬科(不要倒回平平)
    • ping-only:跳过BIOS探测器,直接去接

样本

样本在 samples/ 目录。 每个样本 README.md 有运行样本的指示.

样本源代码试试看
快速启动源代码Open in Cloud Shell

这个 GCP 元数据节点.js 客户端 API 参考 文档 还包含样品.

支持的节点.js版本

我们的客户端图书馆跟着 节点.js发布时间表。 。 。 . 图书馆兼容所有当前 活动 财务报告和审定财务报表 维修 版本 节点.js. 如果你在使用"节点"(Node.js)的报废版本,我们建议你更新 尽快到积极支持的LTS版本.

Google 的客户端库支持在 a 上的 Node.js runtimes 的遗留版本 以下列警告为依据:

  • 后遗症版本不进行连续整合测试.
  • 一些安全补丁和特性不能被后移植.
  • 依赖关系不能不断更新.

设有针对Node.js的一些报废版本的客户端图书馆,以及 可以通过 npm 安装 秒数。 。 。 . 立面遵循命名惯例 legacy-(version)。 。 。 . 譬如说, npm install gcp-metadata@legacy-8 安装客户端库 用于兼容Node.js 8的版本.

版本

这个图书馆跟随 语义版本。 。 。 .

这个图书馆被认为是 稳定。代码表面不会改变向后兼容的方式 除非绝对必要(例如,由于关键的安全问题)或 大量贬值期。 问题和要求 稳定 图书馆 以最高优先处理.

更多信息 : 谷歌云平台启动阶段

捐款

欢迎捐款! 见 贡献指南。 。 。 .

请注意: README.md,则 samples/README.md, (中文(简体) ), 和该寄存器中的各种配置文件(包括 .nycrc 财务报告和审定财务报表 tsconfig.json(中文(简体) ) 从中央模板生成。 要编辑这些文件之一, 请编辑 输入模板 目录。 。 。 .

许可证

Apache 版本 2.0

见 自由主义

版本与发布记录

gcp-metadata 共发布 68 个版本,首次发布于 2016/12/17;过去 12 个月发布了 12 个版本。

版本发布日期距今
9.2.3latest2026/10/299 天前
9.2.22026/10/2018 天前
9.2.12026/10/1622 天前
9.2.02026/10/1325 天前
9.1.02026/10/0830 天前
9.0.42026/09/171 个月前

其他发布通道:legacy-8 → 3.5.0,legacy-10 → 4.3.1,legacy-12 → 5.3.0,legacy-14 → 6.1.1,rc → 7.0.0-rc.1,experimental → 7.0.1-experimental。

关于 gcp-metadata 的常见问题

gcp-metadata 是什么?

从谷歌云平台环境获取元数据

如何安装 gcp-metadata?

在项目目录运行 npm install gcp-metadata,或使用 pnpm add / yarn add / bun add。

gcp-metadata 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

gcp-metadata 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

gcp-metadata 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

gcp-metadata 可以商用吗?

gcp-metadata 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

gcp-metadata 的下载量有多少?

根据 npm 官方下载统计,gcp-metadata 在 2026/10/07 – 2026/11/05 这 30 天内被下载 449,730,762 次,日均约 14,991,025 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

gcp-metadata 还在维护吗?

最新版本 9.2.3 发布于 2026/10/29(9 天前);至今共发布 68 个版本,其中过去 12 个月发布了 12 个;首次发布于 2016/12/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。