# gcp-metadata 中文文档

规范地址：https://npmcn.com/package/gcp-metadata/

版本：9\.2\.3
npm 元数据更新时间：2026-10-29T00:18:01.919Z
中文译文更新时间：2026-11-05T15:08:07.774Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/gcp-metadata
原文对照：https://npmcn.com/package/gcp-metadata/?lang=original
项目主页：https://github.com/googleapis/google-cloud-node/tree/main/core/packages/gcp-metadata
源码仓库：https://github.com/googleapis/google-cloud-node

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：62.3 kB，9 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：3 个
- 首次发布：2016-12-16T21:59:33.560Z
- 最新版本发布：2026-10-29T00:18:01.717Z
- 近 30 天下载量：449730762（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：68（近 12 个月 12 个）

## 中文简介

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

## 安装

```sh
npm install gcp-metadata
```

也可以使用：`pnpm add gcp-metadata`、`yarn add gcp-metadata`、`bun add gcp-metadata`

## README

![Google Cloud Platform logo](https://avatars2.githubusercontent.com/u/2810941?v=3&s=96 "Google Cloud Platform")

# [GCP 元数据: Node.js 客户端](https://github.com/googleapis/gcp-metadata)

[![release level](https://img.shields.io/badge/release%20level-stable-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/gcp-metadata.svg)](https://www.npmjs.com/package/gcp-metadata)

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

各版本的更改一览表载于 [变化](https://github.com/googleapis/gcp-metadata/blob/main/CHANGELOG.md)。 。 。 .

-   [GCP 元数据节点.js 客户端 API 参考](https://cloud.google.com/nodejs/docs/reference/gcp-metadata/latest)
-   [GCP 元数据文档](https://cloud.google.com/compute/docs/storing-retrieving-metadata)
-   [gthub.com/googleapis/gcp-元数据](https://github.com/googleapis/gcp-metadata)

更多信息,请访问Cloud APIs的客户端库,包括老年人 Google APIs 客户端图书馆, in [客户端图书馆解释](https://cloud.google.com/apis/docs/client-libraries-explained)。 。 。 .

**目录 :**

-   [快速启动](https://npmcn.com/package/gcp-metadata/#readme-quickstart)
    
    -   [安装客户端库](https://npmcn.com/package/gcp-metadata/#readme-installing-the-client-library)
    -   [使用客户端库](https://npmcn.com/package/gcp-metadata/#readme-using-the-client-library)
-   [样本](https://npmcn.com/package/gcp-metadata/#readme-samples)
    
-   [版本](https://npmcn.com/package/gcp-metadata/#readme-versioning)
    
-   [捐款](https://npmcn.com/package/gcp-metadata/#readme-contributing)
    
-   [许可证](https://npmcn.com/package/gcp-metadata/#readme-license)
    

## 快速启动

### 安装客户端库

```bash
npm install gcp-metadata
```

### 使用客户端库

```javascript
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();

```

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

```js
const isAvailable = await gcpMetadata.isAvailable();
```

#### 访问所有元数据

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

#### 访问特定属性

```js
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
```

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

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

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

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

#### 使用自定义信头的访问

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

### 照顾大量有价值的财产

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

```js
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/`](https://github.com/googleapis/gcp-metadata/tree/main/samples) 目录。 每个样本 `README.md` 有运行样本的指示.

| 样本 | 源代码 | 试试看 |
| --- | --- | --- |
| 快速启动 | [源代码](https://github.com/googleapis/gcp-metadata/blob/main/samples/quickstart.js) | [![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.png)](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/gcp-metadata&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) |

这个 [GCP 元数据节点.js 客户端 API 参考](https://cloud.google.com/nodejs/docs/reference/gcp-metadata/latest) 文档 还包含样品.

## 支持的节点.js版本

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

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

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

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

## 版本

这个图书馆跟随 [语义版本](http://semver.org/)。 。 。 .

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

更多信息 : [谷歌云平台启动阶段](https://cloud.google.com/terms/launch-stages)

## 捐款

欢迎捐款! 见 [贡献指南](https://github.com/googleapis/gcp-metadata/blob/main/CONTRIBUTING.md)。 。 。 .

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

## 许可证

Apache 版本 2.0

见 [自由主义](https://github.com/googleapis/gcp-metadata/blob/main/LICENSE)

## 常见问题

### 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 和提交记录判断。

