# @beesolve/aws-env-resolver 中文文档

规范地址：https://npmcn.com/package/%40beesolve/aws-env-resolver/

版本：0\.6\.2
npm 元数据更新时间：2026-11-06T10:56:33.786Z
中文译文更新时间：2026-11-07T22:35:36.366Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40beesolve/aws-env-resolver
原文对照：https://npmcn.com/package/%40beesolve/aws-env-resolver/?lang=original
项目主页：https://github.com/BeeSolve/packages/tree/main/packages/aws-env-resolver#readme
源码仓库：https://github.com/BeeSolve/packages

弃用说明：Renamed to @beesolve/aws-env-loader

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

- 包体积（解压后）：90.7 kB，14 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：5 个
- peer 依赖：constructs ^10\.8\.1，typescript ^7\.0\.2，aws-cdk-lib ^2\.275\.0
- 首次发布：2026-10-28T09:42:39.882Z
- 最新版本发布：2026-11-06T10:25:44.262Z
- 近 30 天下载量：2196（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 12 个）

## 中文简介

从 CloudFormation 和 secrets Management 中解析本地开发环境, 缓存它, 并将其注入产入命令

## 安装

```sh
npm install @beesolve/aws-env-resolver
```

也可以使用：`pnpm add @beesolve/aws-env-resolver`、`yarn add @beesolve/aws-env-resolver`、`bun add @beesolve/aws-env-resolver`

## README

# @beesolve/aws-env-resolver (英语)

从 CloudFormation 和 secrets Management 中解析本地开发环境,缓存,并注入产入指令.

> \[尖叫声\] **前1.0 - 不稳定的API.** 这个软件包是 `0.x` 活动 发展。 打破的改变可以降落在任何 `0.x` 释放无主 版本凸起。 选中一个精确的版本并在升级前审查更改日志 . 一旦API稳定,包裹到达 `1.0.0`,它跟随语义 版本和此通知被删除 .

> **macOS 仅安全缓存 .** 在macOS登录密钥链中缓存了密钥. 在其它平台上,每次运行时都会获取秘密,从不写入磁盘. CLI要求Bun来.

## 安装

```sh
bun add -d @beesolve/aws-env-resolver
```

```sh
npm install --save-dev @beesolve/aws-env-resolver
```

## 国 际

```sh
aws-env-resolver [--stage <stage>] [options] -- <command...>
```

先挂上旗帜 `--`。包会掉入线索 `--`,所以如果没有旗帜,第一个非旗词开始命令.

| 旗帜 | 说明 |
| --- | --- |
| `--stage <stage>` | 可选的 选择 `aws-env.config.<stage>.*` 首先,传到工厂,钥匙缓存. |
| `--target <name>` | 当配置定义了数个时要解决的目标 。 选择目标完全只有一个. |
| `--config <path>` | 配置模块或 JSON( 默认 ): `aws-env.config.{ts,js,mjs,json}` 在阴道. |
| `--profile <name>` | AWS profile; 覆盖配置 . |
| `--refresh` | 旁通缓存和从AWS调取. |
| `--purge` | 删除此阶段的缓存值( 运行) `<command>` 只有在给出时才能给出). |
| `--trusted` | 存储按键链项按此读取 。 见下文. |
| `--help` | 显示帮助. |

密钥链项的信托列表在写入时设定 。 与 `--trusted` 解析器在每次运行时都会写项目, 因此首先存储的没有旗帜的项目会被升级: 运行的提示一次又一次运行是沉默的 。 在不运行的情况下切换到信任模式, 通过 `--trusted` 没有命令 :

```sh
aws-env-resolver --stage stg --trusted
```

退出代码 : `0` 成功吗, `1` 运行时间出错, `2` 无效的参数。 当一个命令运行时,其退出代码被返回.

## 图书馆`@beesolve/aws-env-resolver`(中文(简体) )

| 导出 | 说明 |
| --- | --- |
| `resolveEnv` | `(options: ResolveEnvOptions) => Promise<Record<string, string>>`不变异 `process.env`。 。 。 . |
| `purgeCache` | `({ projectKey, stage?, target?, config }) => Promise<void>`。删除缓存文件和密钥链项. |
| `ResolveEnvOptions` | `config`, (中文(简体) ), `resources`, (中文(简体) ), `secrets?`, (中文(简体) ), `projectKey`, (中文(简体) ), `stage?`, (中文(简体) ), `target?`, (中文(简体) ), `refresh?`, (中文(简体) ), `cacheTtlMs?`, (中文(简体) ), `trusted?`。 。 。 . |
| `ResolverConfig` | `profile?`, (中文(简体) ), `region`, (中文(简体) ), `stackName` (一个名字或一个清单), `secretId?`, (中文(简体) ), `accountId?`, (中文(简体) ), `staticEnv`。 。 。 . |
| `ResourceMapping` | `envVar`, (中文(简体) ), `logicalIdPrefix`, (中文(简体) ), `resourceType?`, (中文(简体) ), `stackName?`, (中文(简体) ), `transform?`。 。 。 . |
| `TemplateMapping` | `envVar`, (中文(简体) ), `parts`: 文字字符串和资源引用(`logicalIdPrefix`,.),相声. |
| `SecretMapping` | `envVar`, (中文(简体) ), `jsonKey?` (违约) `envVar`) (中文(简体) ). |
| `ResourceTransform` | 一个函数 `(physicalId, { region, accountId }) => string` 或一个 `TransformTag`。 。 。 . |
| `TransformTag` | `{ kind: "lambdaArn" }`为了JSON的配置. |
| `TransformContext` | `{ region, accountId }`。 。 。 . |
| `EmittedConfig` | 由 CDK 发射器生成的 JSON 配置形状 : `projectKey` 财务报告和审定财务报表 `targets` (名称为 `EmittedTarget`) (中文(简体) ). |
| `EmittedTarget` | 一个目标 `config`, (中文(简体) ), `resources`, (中文(简体) ), `secrets?`。 。 。 . |
| `emittedConfigSchema` | 瓦利博特计划 `EmittedConfig`。 。 。 . |
| `emittedTargetSchema` | 瓦利博特计划 `EmittedTarget`。 。 。 . |
| `defaultTarget` | `"default"`,未命名时使用的目标. |

## CDK (英语:`@beesolve/aws-env-resolver/cdk`(中文(简体) )

需要可选的同位素 `aws-cdk-lib` 财务报告和审定财务报表 `constructs`。 。 。 .

| 导出 | 说明 |
| --- | --- |
| `envOf` | `(construct) => Record<string, DevEnvValue>`. Lambda (s) 的地洞,在一个构造下. |
| `secret` | `({ secretId, jsonKey? }) => EnvSecret`。保密管理器值; `jsonKey` 默认名称. |
| `generateDevEnv` | `(props: DevEnvProps) => EmittedConfig`。将嵌入式嵌入转换成映射;没有 I/O. |
| `persistDevEnv` | `(config, { path }) => void`。写 JSON,创建父目录. |
| `devEnv` | `generateDevEnv` 接下来 `persistDevEnv`; 可选 `stage` 财务报告和审定财务报表 `path` (默认) `aws-env.config[.<stage>].json`) (中文(简体) ). |
| `defaultConfigPath` | `(stage?) => string`。文件名称 `devEnv` 无 `path`。 。 。 . |
| `DevEnvProps` | `projectName`, (中文(简体) ), `env`, (中文(简体) ), `profile?`。 。 。 . |
| `DevEnvValue` | `string | EnvResource | EnvSecret`。 。 。 . |

Dev env 是您所作的平面对象: 扩展 `envOf(...)` 用于每个构造,其内嵌当地进程需要,然后添加文字和 `secret(...)`。后一键胜出,所以传播顺序是优先的,两个嵌入式的构造为不同的资源设置同名,从不冲突;您选择一个. `envOf` 当Lambdas在一个构造下对一个名字有分歧时,就抛出. 所有价值观必须共享一个区域. `Ref` 财务报告和审定财务报表 `Fn::GetAtt` `Arn` 被支持; 其他内在显示。 Env vars 设定自 `secret.secretValueFromJson(key)` 联合国 `{{resolve:secretsmanager:...}}` 动态参考)作为秘密映射自动发布. 发件人写出一个食谱(env var to logical-id前缀),从未解析出物理名称.

## 配置

CLI 装入第一个 `aws-env.config.<stage>.ts`, (中文(简体) ), `.js`, (中文(简体) ), `.mjs`, (中文(简体) ), `.json` (与 `--stage`,则 `aws-env.config.ts`, (中文(简体) ), `.js`, (中文(简体) ), `.mjs`, (中文(简体) ), `.json`在阴道。 模块导出选项对象或选项对象 `(stage) => options` 工厂(同步或同步)。 JSON 文件是 CDK 发送格式 : `{ projectKey, targets }`。有一个目标 `--target` 是可选的;需要几个。 一个模块工厂收到 `(stage, target)`。没有 `targets` (预目标形状) `default` 目标。 生成配置到 `.json`中,手写配置将 `.ts`。 。 。 .

当一个阴道var出现在几个来源中时,后一个获胜: `config.staticEnv`,然后是CloudFormation资源,然后是秘密.

## 缓存

-   非秘密值 : `os.tmpdir()/aws-env-resolver/<projectKey>-<stage>-<fingerprint>.json`,默认24小时TTL(`cacheTtlMs`) (中文(简体) ). 文件记录了资源映射的散列,因此为不同的映射而缓存的值(例如重生了配置后)是错失并被重置.
-   秘诀: macOS 密钥链, 服务 `aws-env-resolver:<projectKey>:<stage>:<fingerprint>`一个东西 拥有所有的秘密作为JSON。 指纹散列 `region`, (中文(简体) ), `stackName`,以及 `secretId`,因此缓存和密钥链共享一个独立于工作目录的身份. 一个非默认目标也输入了缓存文件的指纹(不是键链的指纹),因此共享一个堆的目标保存了单独的资源缓存.
-   默认模式存储带有空信任列表的项目, 因此 macOS 可以在读取时提示一次 . `--trusted` 以 `-T /usr/bin/security` 为默念.
-   稳定状态让0AWS呼叫.
-   在非 MacOS 平台上没有安全的缓存,每次运行都会获取秘密.

## IAM 权限

-   `cloudformation:ListStackResources`
-   `secretsmanager:GetSecretValue`
-   `sts:GetCallerIdentity`,只有当 ARN 变换运行时 `config.accountId`

见 [DOCS. md (英语)](https://npmcn.com/package/%40beesolve/aws-env-resolver/DOCS.md) 以引导人.

## 常见问题

### @beesolve/aws-env-resolver 是什么？

从 CloudFormation 和 secrets Management 中解析本地开发环境, 缓存它, 并将其注入产入命令注意：该包已被作者标记为弃用——Renamed to @beesolve/aws-env-loader

### 如何安装 @beesolve/aws-env-resolver？

在项目目录运行 npm install @beesolve/aws-env-resolver，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 aws-env-resolver，可以用 npx aws-env-resolver 直接运行。

### @beesolve/aws-env-resolver 支持 TypeScript 吗？

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

### @beesolve/aws-env-resolver 支持 ESM 还是 CommonJS？

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

### @beesolve/aws-env-resolver 可以商用吗？

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

### @beesolve/aws-env-resolver 的下载量有多少？

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

### @beesolve/aws-env-resolver 还在维护吗？

最新版本 0\.6\.2 发布于 2026/11/06（2 天前）；至今共发布 12 个版本，其中过去 12 个月发布了 12 个；首次发布于 2026/10/28。作者已将其标记为弃用，新项目建议寻找替代方案。

