@beesolve/aws-env-resolver

中文文档
0.6.2发布于 2026/11/06MITTypeScriptES Module构建来源已验证近 30 天下载 2196

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

此软件包已被标记为弃用

Renamed to @beesolve/aws-env-loader

中文使用文档
文档目录7 节
  1. 安装
  2. 国 际
  3. 图书馆 @beesolve/aws-env-resolver (中文(简体) )
  4. CDK (英语: @beesolve/aws-env-resolver/cdk (中文(简体) )
  5. 配置
  6. 缓存
  7. IAM 权限

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

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

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

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

安装

bun add -d @beesolve/aws-env-resolver
npm install --save-dev @beesolve/aws-env-resolver

国 际

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 没有命令 :

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>。删除缓存文件和密钥链项.
ResolveEnvOptionsconfig, (中文(简体) ), resources, (中文(简体) ), secrets?, (中文(简体) ), projectKey, (中文(简体) ), stage?, (中文(简体) ), target?, (中文(简体) ), refresh?, (中文(简体) ), cacheTtlMs?, (中文(简体) ), trusted?。 。 。 .
ResolverConfigprofile?, (中文(简体) ), region, (中文(简体) ), stackName (一个名字或一个清单), secretId?, (中文(简体) ), accountId?, (中文(简体) ), staticEnv。 。 。 .
ResourceMappingenvVar, (中文(简体) ), logicalIdPrefix, (中文(简体) ), resourceType?, (中文(简体) ), stackName?, (中文(简体) ), transform?。 。 。 .
TemplateMappingenvVar, (中文(简体) ), parts: 文字字符串和资源引用(logicalIdPrefix,.),相声.
SecretMappingenvVar, (中文(简体) ), 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,创建父目录.
devEnvgenerateDevEnv 接下来 persistDevEnv; 可选 stage 财务报告和审定财务报表 path (默认) aws-env.config[.<stage>].json) (中文(简体) ).
defaultConfigPath(stage?) => string。文件名称 devEnv 无 path。 。 。 .
DevEnvPropsprojectName, (中文(简体) ), env, (中文(简体) ), profile?。 。 。 .
DevEnvValuestring | 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 (英语) 以引导人.

版本与发布记录

@beesolve/aws-env-resolver 共发布 12 个版本,首次发布于 2026/10/28;过去 12 个月发布了 12 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.6.2latest2026/11/062 天前
0.6.12026/11/035 天前
0.6.02026/11/026 天前
0.5.02026/10/318 天前
0.4.22026/10/318 天前
0.4.12026/10/318 天前

关于 @beesolve/aws-env-resolver 的常见问题

@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。作者已将其标记为弃用,新项目建议寻找替代方案。