这是 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>
-
迁移后将在 CDK 应用程序中创建的 AWS CloudFormation 堆栈的名称。
必需:是
条件选项
-
--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 堆栈迁移的简单示例
使用从特定 AWS 环境中部署的 CloudFormation 堆栈迁移--from-stack
。提供 --stack-name
来命名新的 CDK 堆栈。以下是将 myCloudFormationStack
迁移到使用 TypeScript 的新 CDK 应用程序的示例:
$ cdk migrate --language typescript --from-stack --stack-name 'myCloudFormationStack'
从本地 CloudFormation 模板迁移的简单示例
使用--from-path
从本地 JSON 或 YAML CloudFormation 模板迁移。提供 --stack-name
来命名新的 CDK 堆栈。以下是在中创建新 CDK 应用程序的示例 TypeScript ,其中包含来自本地template.json
文件的myCloudFormationStack
堆栈:
$ cdk migrate --stack-name "myCloudFormationStack" --language typescript --from-path "./template.json"
从已部署 AWS 资源迁移的简单示例
使用从与 CloudFormation 堆栈无关的特定 AWS 环境中迁移已部署的 AWS 资源--from-scan
。CDK CLI 利用了 IaC generator 用于扫描资源并生成模板的服务。然后,CDK CLI 会引用模板来创建新的 CDK 应用程序。以下是 TypeScript 使用包含已迁移 AWS 资源的新myCloudFormationStack
堆栈创建新 CDK 应用程序的示例:
$ cdk migrate --language typescript --from-scan --stack-name "myCloudFormationStack"