这是 AWS CDK v2 开发者指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
cdk migrate
将已部署的 AWS 资源、AWS CloudFormation 堆栈和 CloudFormation 模板迁移到新的 AWS CDK 项目中。
此命令会创建一个新的 CDK 应用程序,其中包含单个堆栈,该堆栈以您使用 --stack-name 提供的值命名。您可以使用 --from-scan、--from-stack 或 --from-path 来配置迁移源。
有关使用 cdk migrate 的更多信息,请参阅将现有资源和 AWS CloudFormation 模板迁移到 AWS CDK。
注意
cdk migrate 命令处于试验阶段,将来可能会发生重大更改。
使用量
$ cdk migrate <options>
选项
有关适用于所有 CDK CLI 命令的全局选项的列表,请参阅全局选项。
必需选项
-
--stack-name <STRING> -
AWS CloudFormation 堆栈的名称,迁移后将在 CDK 应用程序中进行创建。
必需:是
条件选项
-
--from-path <PATH> -
要迁移的 AWS CloudFormation 模板的路径。提供此选项可指定本地模板。
必填:条件性。如果从本地 AWS CloudFormation 模板迁移,则为必需项。
-
--from-scan <STRING> -
从 AWS 环境迁移已部署的资源时,请使用此选项来指定是否应启动新的扫描,或 AWS CDK CLI 是否应使用上次成功的扫描。
必填:条件性。如果从已部署的 AWS 资源迁移,则为必需项。
接受的值:
most-recent、new
-
--from-stack <BOOLEAN> -
提供此选项可从已部署的 AWS CloudFormation 堆栈迁移。使用
--stack-name来指定已部署的 AWS CloudFormation 堆栈名称。必填:条件性。如果从已部署的 AWS CloudFormation 堆栈迁移,则为必需项。
可选选项
-
--account <STRING> -
要从中检索 AWS CloudFormation 堆栈模板的账户。
必需:否
默认:AWS CDK CLI 从默认源获取账户信息。
-
--compress <BOOLEAN> -
提供此选项可将生成的 CDK 项目压缩成
ZIP文件。必需:否
-
--filter <ARRAY> -
从 AWS 账户和 AWS 区域迁移已部署资源时使用。此选项指定筛选条件来确定要迁移哪些已部署的资源。
此选项接受键值对数组,其中键表示筛选条件类型,值表示要筛选的值。
以下是可接受的键:
-
resource-identifier:资源的标识符。值可以是资源逻辑或物理 ID。例如resource-identifier="ClusterName"。 -
resource-type-prefix– AWS CloudFormation 资源类型前缀。例如,指定resource-type-prefix="AWS::DynamoDB::"以筛选所有 Amazon DynamoDB 资源。 -
tag-key:资源标签的键。例如tag-key="myTagKey"。 -
tag-value:资源标签的值。例如tag-value="myTagValue"。
为
AND条件逻辑提供多个键值对。以下示例筛选了使用myTagKey作为标签键的所有 DynamoDB 资源:--filter resource-type-prefix="AWS::DynamoDB::", tag-key="myTagKey"。在单个命令中多次提供
--filter选项,用于OR条件逻辑。以下示例筛选了所有属于 DynamoDB 资源或使用myTagKey标记为标签键的资源:--filter resource-type-prefix="AWS::DynamoDB::" --filter tag-key="myTagKey"。必需:否
-
-
--help, -h <BOOLEAN> -
显示
cdk migrate命令的命令参考信息。
-
--language <STRING> -
迁移期间创建的 CDK 项目使用的编程语言。
必需:否
有效值:
typescript、python、java、csharp、go。默认值:
typescript
-
--output-path <PATH> -
已迁移的 CDK 项目的输出路径。
必需:否
默认:默认情况下,AWS CDK CLI 将使用您当前的工作目录。
-
--region <STRING> -
要从中检索 AWS CloudFormation 堆栈模板的 AWS 区域。
必需:否
默认:AWS CDK CLI 从默认源获取 AWS 区域信息。
示例
从 CloudFormation 堆栈迁移的简单示例
使用 --from-stack 从特定 AWS 环境中已部署的 CloudFormation 堆栈迁移。提供 --stack-name 来命名新的 CDK 堆栈。以下是将 myCloudFormationStack 迁移到使用 TypeScript: 的新 CDK 应用程序的示例:
$ cdk migrate --language typescript --from-stack --stack-name 'myCloudFormationStack'
从本地 CloudFormation 模板迁移的简单示例
使用 --from-path 从本地 JSON 或 YAML CloudFormation 模板迁移。提供 --stack-name 来命名新的 CDK 堆栈。以下是在 TypeScript 中创建新 CDK 应用程序的示例,其中包含来自本地 template.json 文件的 myCloudFormationStack 堆栈:
$ cdk migrate --stack-name "myCloudFormationStack" --language typescript --from-path "./template.json"
从已部署的 AWS 资源迁移的简单示例
使用 --from-scan 从未与 CloudFormation 堆栈关联的特定 AWS 环境中迁移已部署的 AWS 资源。CDK CLI 利用 IaC generator 服务来扫描资源并生成模板。然后,CDK CLI 引用该模板来创建新的 CDK 应用程序。以下是在 TypeScript 中创建新 CDK 应用程序的示例,其中包含新 myCloudFormationStack 堆栈,包含已迁移的 AWS 资源:
$ cdk migrate --language typescript --from-scan --stack-name "myCloudFormationStack"