这是 AWS CDK v2 开发者指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
cdk refactor
重要
该cdk refactor
命令处于预览版,可能会发生变化。
使用此命令时必须提供该--unstable=refactor
选项。
在 C AWS loud Development Kit (AWS CDK) 应用程序中重构代码时,请保留已部署的资源。
当您在 CDK 代码中重命名构造或在堆栈之间移动它们时,通常 CloudFormation 会将其视为新资源,从而导致替换,从而导致服务中断或数据丢失。该cdk refactor
命令可以智能地检测这些更改,并与 CloudFormation的重构 API 配合使用,在更新逻辑的同时保留您的资源。 IDs
通过使用 cdk refactor
,您可以:
-
重命名构造以提高代码库的清晰度,而不会导致资源替换。
-
在堆栈之间转移资源,以改善组织和问题分离。
-
重新组织您的构造层次结构(例如将 AWS 资源分组到新的 L3 结构下),同时保留底层云资源。
-
安全地升级或在构造库(包括第三方依赖项)之间切换,而不会在版本间 IDs 发生逻辑变化时触发资源替换。
此命令分析您的更改,向您显示将更改位置(堆栈和逻辑 ID)的资源列表,并处理在保持其身份和状态的同时更新 CloudFormation 资源的复杂过程。
运行时,该命令会通过将当前代码与已部署状态进行比较来自动计算映射。它会验证您的 CDK 应用程序是否包含与已部署状态完全相同的资源集,只是它们在构造树中的位置有所不同。如果该命令检测到任何资源添加、删除或修改,则重构操作将被拒绝并显示错误消息。
映射计算完成后,该命令会向您显示建议的更改,并在用户确认后应用重构。如果检测到歧义(可能存在多个有效映射),则可以提供包含显式映射的覆盖文件来解决这些问题。
有关简介,请参阅在重构 CDK 代码时保留已部署的资源。
用量
$ cdk refactor <arguments> <options>
参数
- CDK 堆栈 ID
-
从您的应用程序到重构的 CDK 堆栈的构造 ID。
您可以指定多个堆栈 IDs ,将重构操作集中在这些堆栈上。如果资源在堆栈之间移动,并且其中一个堆栈未明确包含在内,则重构命令将自动在操作中包含额外的堆栈。
如果您不提供任何堆栈 IDs,则将考虑重构应用程序中的所有堆栈。
类型:字符串
必需:否
选项
有关适用于所有 CDK CLI 命令的全局选项列表,请参阅全局选项。
-
--dry-run
-
在不应用映射的情况下将映射打印到控制台。
此选项对于在实际执行重构之前验证您的更改非常有用,尤其是在使用复杂应用程序时。它会准确显示在不修改任何资源的情况下会进行哪些更改。
-
--force
-
在不提示用户确认的情况下继续进行重构。
当您对更改充满信心时,这在交互式环境中非常有用。在诸如 CI/CD 管道之类的非交互式环境中,CDK CLI 会在不提示的情况下自动运行,因此不需要此选项。
-
--help, -h <BOOLEAN>
-
显示
cdk refactor
命令的命令参考信息。
-
--override-file <FILE>
-
当 CDK CLI 无法确定资源的重构解决方案时,提供替换。此文件包含 JSON 格式的资源映射。以下是示例:
{ "environments": [ { "account": "123456789012", "region": "us-east-2", "resources": { "StackA.OldName": "StackB.NewName", "StackC.Foo": "StackC.Bar" } } ] }
-
--revert <FILE>
-
恢复之前的重构。您必须提供包含资源映射的覆盖文件。
这并不能完全撤消之前的重构操作。要完全恢复重构,您需要将应用程序回滚到先前的状态,然后再次运行重构过程。