这是 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>
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 区域。此选项指定筛选器来确定要迁移哪些已部署的资源。
此选项接受键值对数组,其中 ke y 代表过滤器类型,值代表要过滤的值。
以下是可接受的密钥:
-
resource-identifier
— 资源的标识符。值可以是资源逻辑或物理 ID。例如,resource-identifier="ClusterName"
。 -
resource-type-prefix
— AWS CloudFormation 资源类型前缀。例如,指定resource-type-prefix="AWS::DynamoDB::"
筛选所有亚马逊 DynamoDB 资源。 -
tag-key
— 资源标签的密钥。例如,tag-key="myTagKey"
。 -
tag-value
— 资源标签的值。例如,tag-value="myTagValue"
。
为
AND
条件逻辑提供多个键值对。以下示例筛选了标记myTagKey
为标签键的任何 DynamoDB 资源:.--filter resource-type-prefix="AWS::DynamoDB::", tag-key="myTagKey"
在单个命令中为
OR
条件逻辑多次提供该--filter
选项。以下示例筛选任何属于 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 应用程序。以下是TypeScript使用包含已迁移 AWS 资源的新myCloudFormationStack
堆栈创建新 CDK 应用程序的示例:
$
cdk migrate --language typescript --from-scan --stack-name "myCloudFormationStack"