@aws-mdaa/naming

中文文档
1.10.0发布于 2026/11/07Apache-2.0TypeScriptCommonJS近 30 天下载 1.6万

MDAA 命名

中文使用文档
文档目录5 节
  1. 资源类型支持
  2. 包括 env 在 SSM 路径和导出名称中
  3. 启用嵌入意识路径
  4. 引用嵌入意识参数
  5. 调动现有部署

MDAA 命名

此软件包定义了MDA兼容的命名执行的接口,以及默认执行. 命名执行将被通过 MDAA CDK App Context ,以便根据 MDAA 执行环境中指定的任何上下文初始化自己.

资源类型支持

这个 MdaaResourceType 页:1 withResourceType() 方法允许自定义命名执行生成资源型识别名称. 默认执行是无操作的——它忽略了资源类型,返回名称不变,保留了后向相容性.

以下示例产出只能通过自定义执行实现,该执行将超过 withResourceType() (见 计算机化.md) (中文(简体) ). 框外,默认执行将生成同名名称,无论哪个 MdaaResourceType 提供了数值.

// With a custom impl that overrides withResourceType (see CUSTOMIZATION.md):
const naming = customNaming.withResourceType(MdaaResourceType.S3_BUCKET);
const bucketName = naming.resourceName('my-data');
// → "aw-dev-s3-dpl-retail-datalake-my-data"

见 计算机化.md 仅供参考.

包括 env 在 SSM 路径和导出名称中

默认情况下, 默认命名执行生成的 SSM 参数路径和 CloudFormation 导出名称 没有 包括环境env:

方法默认格式
ssmPath()/<org>/<domain>/<module_name>/<path>
exportName()<org>:<domain>:<module_name>:<path>

这导致碰撞,当 同单元 用于多种环境(例如:. dev 财务报告和审定财务报表 prod(a) 内 单一 AWS 账户:两种部署都产生相同的SSM参数名称(沉默覆盖/跨环境泄漏)和相同的CloudFormation导出名称(第二次部署彻底失败,因为每个账户/区域的出口名称必须独一无二).

启用嵌入意识路径

设定 @mdaaIncludeEnvInSsmPath CDK 上下文旗为 true (通过a) context 块在您的 MDAA 配置中,或 additional_context 在模块中)。 值必须准确 true 或者说 false ——其他任何值都会被错误地拒绝来防止打字(例如. yes, (中文(简体) ), 1)从被无声地曲解. 当启用时, env 紧接 domain数字 :

方法格式为 @mdaaIncludeEnvInSsmPath: true
ssmPath()/<org>/<domain>/<env>/<module_name>/<path>
exportName()<org>:<domain>:<env>:<module_name>:<path>

旗帜默认为 false因此,除非明确选择,否则现有部署不会受到影响。 启用时, 发布 SSM 参数和导出的所有内部代码路径( 通过 naming.ssmPath(...) 编号 : naming.exportName(...))自动采用新格式——不需要每个单元的代码修改.

引用嵌入意识参数

国旗只影响 发布 边 当在配置中引用另一个模块的 env-aware 参数时, 框架不能推断您指的是哪个环境, 所以您必须提供 env 明确 — 正如您已经提供了模块名称:

# Preferred for same-domain references — ssm-env: already prepends /<org>/<domain>/<env>/,
# so no manual env segment is needed:
someKmsKeyArn: ssm-env:/my-kms-module/cmk/arn

# With ssm-domain: (prepends only /<org>/<domain>/), include the env segment yourself:
someKmsKeyArn: ssm-domain:/dev/my-kms-module/cmk/arn

# With ssm-org: or a literal resolve:ssm: reference, write the full env-aware path:
someKmsKeyArn: ssm-org:/my-domain/dev/my-kms-module/cmk/arn

调动现有部署

启用此旗会更改 SSM 参数名称和 CloudFormation 导出名称, 所以对于任何用户参考了旧路径的部署来说, 这是一种突破性更改 。 因为参数/导出 名称 更改时, 而基本的 CloudFormation 逻辑ID 不 :

  • 每个 SSM 参数是 已替换 已就位 —— Cloud Formation 创建了新的env-aware参数并删除同一部署中的旧参数. 没有遗留的旧参数需要清理,也没有旧名和新名都解决的重叠窗口.
  • 当另一个堆栈仍然导入时, 导出名称不能被更改( E)Fn::ImportValue) (中文(简体) ). 您必须阻止消费者在重新部署生产者之前(或者在与重新部署生产者相同的协调变化中)进口旧出口,否则生产者部署将失败.

安全迁移:

  1. 更新所有关于受影响参数的配置引用/导出到内存意识路径(见上文) 在此之前 重新部署生产商,所以没有堆栈导入旧的导出名.
  2. 启用 @mdaaIncludeEnvInSsmPath: true 并重新部署。 制作者在env-aware路径上发布(旧参数被替换,而不是被孤),消费者解决了新路径.

版本与发布记录

@aws-mdaa/naming 共发布 12 个版本,首次发布于 2025/05/14;过去 12 个月发布了 9 个版本。

版本发布日期距今
1.10.0latest2026/11/07今天
1.9.02026/10/021 个月前
1.8.12026/09/151 个月前
1.8.02026/09/022 个月前
1.7.02026/07/173 个月前
1.6.02026/05/225 个月前

其他发布通道:prerelease → 1.0.20250515125056。

关于 @aws-mdaa/naming 的常见问题

@aws-mdaa/naming 是什么?

MDAA 命名

如何安装 @aws-mdaa/naming?

在项目目录运行 npm install @aws-mdaa/naming,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:constructs(10.6.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aws-mdaa/naming 支持 TypeScript 吗?

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

@aws-mdaa/naming 支持 ESM 还是 CommonJS?

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

@aws-mdaa/naming 可以商用吗?

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

@aws-mdaa/naming 的下载量有多少?

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

@aws-mdaa/naming 还在维护吗?

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