这是 AWS CDK v2 开发者指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将已部署的 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 区域 要从中检索 AWS CloudFormation 堆栈模板。
必需:否
默认: AWS CDK CLI 从默认来源获取 AWS 区域 信息。
示例
从 CloudFormation 堆栈迁移的简单示例
使用从特定 AWS 环境中部署的 CloudFormation 堆栈迁移--from-stack
。提供 --stack-name
来命名新的 CDK 堆栈。以下是迁移myCloudFormationStack
到正在使用的新 CDK 应用程序的示例 TypeScript:
$
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 应用程序。以下是在中创建新 CDK 应用程序的示例 TypeScript 使用包含已迁移 AWS 资源的新myCloudFormationStack
堆栈:
$
cdk migrate --language typescript --from-scan --stack-name "myCloudFormationStack"