# @dotcom-reliability-kit/app-info 中文文档

规范地址：https://npmcn.com/package/%40dotcom-reliability-kit/app-info/

版本：5\.0\.1
npm 元数据更新时间：2026-07-14T09:43:50.892Z
中文译文更新时间：2026-11-12T18:57:45.746Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40dotcom-reliability-kit/app-info
原文对照：https://npmcn.com/package/%40dotcom-reliability-kit/app-info/?lang=original
项目主页：https://github.com/Financial-Times/dotcom-reliability-kit/tree/main/packages/app-info#readme
源码仓库：https://github.com/Financial-Times/dotcom-reliability-kit

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

- 包体积（解压后）：24 kB，12 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：^22\.12 \|\| ^24 \|\| ^26
- 运行依赖：0 个
- 首次发布：2022-08-23T08:22:49.202Z
- 最新版本发布：2026-07-14T09:43:50.615Z
- 近 30 天下载量：13261（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：26（近 12 个月 3 个）

## 中文简介

用于以一致的方式获取应用程序信息 .

## 安装

```sh
npm install @dotcom-reliability-kit/app-info
```

也可以使用：`pnpm add @dotcom-reliability-kit/app-info`、`yarn add @dotcom-reliability-kit/app-info`、`bun add @dotcom-reliability-kit/app-info`

## README

# @ dotcom- relisity- kit/ app- info

一个以一致的方式获取应用信息(如系统代码)的效用. 此模块是 [FT.com 可靠性工具包](https://github.com/Financial-Times/dotcom-reliability-kit#readme)。 。 。 .

-   [使用量](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-usage)
    -   [`appInfo.commitHash`](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-appinfocommithash)
    -   [`appInfo.environment`](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-appinfoenvironment)
    -   [`appInfo.region`](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-appinforegion)
    -   [`appInfo.releaseDate`](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-appinforeleasedate)
    -   [`appInfo.releaseVersion`](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-appinforeleaseversion)
    -   [`appInfo.systemCode`](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-appinfosystemcode)
    -   [`appInfo.processType`](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-appinfoprocesstype)
    -   [`appInfo.cloudProvider`](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-appinfocloudprovider)
    -   [`appInfo.herokuAppId`](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-appinfoherokuappid)
    -   [`appInfo.herokuDynoId`](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-appinfoherokudynoid)
    -   [`appInfo.instanceId`](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-appinfoinstanceid)
    -   [`appInfo.semanticConventions`](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-appinfosemanticconventions)
-   [移动](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-migrating)
-   [捐款](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-contributing)
-   [许可证](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/#readme-license)

## 使用量

安装 `@dotcom-reliability-kit/app-info` 作为依附关系:

```bash
npm install --save @dotcom-reliability-kit/app-info
```

在代码中包含 :

```js
import appInfo from '@dotcom-reliability-kit/app-info';
```

> \[TIP\] 如果您使用此软件包并带有 TypeScript , 我们建议您使用以下设置: `tsconfig.json` 避免类型错误的文件 :
> 
> ```json
> {
>     "esModuleInterop": true,
>     "module": "nodenext",
>     "moduleResolution": "nodenext"
> }
> ```

这个 `appInfo` 对象具有若干属性,可用于访问应用程序信息.

### `appInfo.commitHash`

得到承诺散列 应用程序上一个部署。 这将是一个字符串( 如果 `process.env.HEROKU_SLUG_COMMIT`, (中文(简体) ), `process.env.GIT_COMMIT_LONG`,或 `process.env.GIT_COMMIT` 定义)或 `null` 否则.

对赫鲁库来说 这取决于 [Dyno 元数据实验室特性](https://devcenter.heroku.com/articles/dyno-metadata) 并且不会参与地方发展.

对于AWS Lambda,您可以使用一个插件,例如 [无服务器插件- git 变量](https://www.npmjs.com/package/serverless-plugin-git-variables) 或设置 `GIT_COMMIT` 部署时的环境变量.

### `appInfo.environment`

获取应用程序环境, 通常是 `development` 或者说 `production`。这将是一个字符串,按顺序尝试并默认为 `development`数字 :

-   `DEPLOYMENT_ENVIRONMENT`
-   `RELEASE_ENV`
-   `ENVIRONMENT`
-   `NODE_ENV`

### `appInfo.region`

获取应用程序正在运行的区域 。 这将是一个字符串( 如果 `process.env.REGION` 或者说 `process.env.AWS_REGION` 定义)或 `null` 否则.

### `appInfo.releaseDate`

获取应用程序Heroku发布日期 。 这将是一个字符串( 如果 `process.env.HEROKU_RELEASE_CREATED_AT` 定义)或 `null` 否则.

对赫鲁库来说 这取决于 [Dyno 元数据实验室特性](https://devcenter.heroku.com/articles/dyno-metadata) 并且不会参与地方发展.

### `appInfo.releaseVersion`

获取应用程序 Heroku 发布版本 。 这将是一个字符串( 如果 `process.env.HEROKU_RELEASE_VERSION` 或者说 `process.env.AWS_LAMBDA_FUNCTION_VERSION` 定义)或 `null` 否则.

对赫鲁库来说 这取决于 [Dyno 元数据实验室特性](https://devcenter.heroku.com/articles/dyno-metadata) 并且不会参与地方发展.

### `appInfo.systemCode`

拿到申请表 [Biz 行动](https://biz-ops.in.ft.com/) 系统代码。 这将是一个字符串( 如果 `process.env.SYSTEM_CODE` 如果不是定义,则将从 `name` 财产 `$CWD/package.json`如果两者都不存在,则将注定 `null`。 。 。 .

如果系统代码是从应用程序读取的 `package.json` 然后它将被剥去任何 `"ft-"` 前缀 – 这是一个遗留名称, 我们的应用系统代码不是从它开始的 .

### `appInfo.processType`

获取运行进程的类型, 即应用程序内当前进程的名称 .

将 AWS Lambda 改为: `process.env.AWS_LAMBDA_FUNCTION_NAME`。 。 。 .

对于Heroku来说,这是从以下第一部分衍生出来的: `process.env.DYNO`,由Heroku设定,例如,一个叫作 `web.1` 将会有 `processType` 设置为 `web`。应用程序中的流程类型由应用程序的 `Procfile`。 。 。 .

如果没有 `process.env.AWS_LAMBDA_FUNCTION_NAME` 或者说 `process.env.DYNO` 设置中,此属性将会是 `null`

### `appInfo.cloudProvider`

获取云提供器的类型, 它被设定为 Heroku 或 AWS 取决于我们认为系统的主机位置 .

这来自一些我们高度信任的环境变量,只有Heroku或AWS/Lambda定义

### `appInfo.herokuAppId`

拿着 `process.env.HEROKU_APP_ID` 这是应用程序的独有标识符。例如“9daa2797-e49b-4624-932f-ec3f9688e3da”

这是由 Dyno 元数据衍生出来的

### `appInfo.herokuDynoId`

拿着 `process.env.HEROKU_DYNO_ID` 是阴道标识符

这是由 Dyno 元数据衍生出来的

### `appInfo.instanceId`

获取应用程序运行实例的独有标识符 。 这将是一个不同的UUID,每个运行的过程,包括集群工人.

### `appInfo.semanticConventions`

此对象包含主对象的别名 `appInfo` 对应 OpenTeleometry 属性 [语义公约](https://opentelemetry.io/docs/concepts/semantic-conventions/)。我们使用下列绘图:

-   `appInfo.semanticConventions.cloud.provider` 别名 `appInfo.cloudProvider`
-   `appInfo.semanticConventions.cloud.region` 别名 `appInfo.region`
-   `appInfo.semanticConventions.deployment.environment` 别名 `appInfo.environment`
-   `appInfo.semanticConventions.service.name` 别名 `appInfo.systemCode`
-   `appInfo.semanticConventions.service.version` 别名 `appInfo.releaseVersion`
-   `appInfo.semanticConventions.service.instance.id` 别名 `appInfo.instanceId`

> \[尖叫声\] 其它所有属性默认为 `null` 如果无法计算,则语义公约属性默认为 `undefined`。这是为了确保与 OpenTeleometry SDKs 更好的兼容性.

## 移动

咨询 [移徙指南](https://npmcn.com/package/%40dotcom-reliability-kit/app-info/docs/migration.md) 如果你想要迁移到这个软件包的后期主要版本.

## 捐款

见 [可靠性工具包中心贡献指南](https://github.com/Financial-Times/dotcom-reliability-kit/blob/main/docs/contributing.md)。 。 。 .

## 许可证

凭 [麻省理工学院](https://github.com/Financial-Times/dotcom-reliability-kit/blob/main/LICENSE) 执照.  
版权:"2022","金融时报"有限公司.

## 常见问题

### @dotcom-reliability-kit/app-info 是什么？

用于以一致的方式获取应用程序信息 \.

### 如何安装 @dotcom-reliability-kit/app-info？

在项目目录运行 npm install @dotcom-reliability-kit/app-info，或使用 pnpm add / yarn add / bun add。

### @dotcom-reliability-kit/app-info 支持 TypeScript 吗？

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

### @dotcom-reliability-kit/app-info 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @dotcom-reliability-kit/app-info 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js ^22\.12 \|\| ^24 \|\| ^26。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @dotcom-reliability-kit/app-info 可以商用吗？

@dotcom-reliability-kit/app-info 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @dotcom-reliability-kit/app-info 的下载量有多少？

根据 npm 官方下载统计，@dotcom-reliability-kit/app-info 在 2026/10/13 – 2026/11/11 这 30 天内被下载 13,261 次，日均约 442 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @dotcom-reliability-kit/app-info 还在维护吗？

最新版本 5\.0\.1 发布于 2026/07/14（4 个月前）；至今共发布 26 个版本，其中过去 12 个月发布了 3 个；首次发布于 2022/08/23。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

