这是 AWS CDK v2 开发者指南。较旧的 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
cdk import
使用AWS CloudFormation 资源导入将现有 AWS 资源导入CDK堆栈。
使用此命令,您可以获取使用其他方法创建的现有资源,然后使用开始管理这些资源 AWS CDK。
在考虑将资源转移到CDK管理层时,有时创建新资源是可以接受的,例如使用IAM角色、Lambda 函数和事件规则。对于其他资源,例如 Amazon S3 存储桶和 DynamoDB 表等有状态资源,创建新资源可能会对您的服务造成影响。您可以使用导入现有资源cdk import
,同时最大限度地减少对服务的干扰。有关支持的 AWS 资源列表,请参阅《AWS CloudFormation 用户指南》中的资源类型支持。
将现有资源导入堆CDK栈
-
运行 a
cdk diff
以确保您的CDK堆栈没有待处理的更改。执行时cdk import
,导入操作中唯一允许的更改是添加要导入的新资源。 -
为要导入堆栈的资源添加结构。例如,为 Amazon S3 存储桶添加以下内容:
new s3.Bucket(this, 'ImportedS3Bucket', {});
请勿添加任何其他更改。您还必须确保对资源当前的状态进行精确建模。对于存储桶示例,请务必包含 AWS KMS 密钥、生命周期策略以及与存储桶相关的任何其他内容。否则,后续更新操作可能无法达到预期效果。
-
运行
cdk import
。如果CDK应用程序中有多个堆栈,请将特定的堆栈名称作为参数传递。 -
的 CDK CLI 将提示您传入要导入的资源的实际名称。在您提供此信息后,将开始导入。
-
cdk import
报告成功后,资源将由管理CDK。构造配置的任何后续更改都将反映在资源上。
目前,此功能具有以下限制:
-
无法将资源导入嵌套堆栈。
-
对于导入的资源,无需检查您指定的属性是否正确和完整。导入后尝试启动漂移检测操作。
-
依赖其他资源的资源必须全部按正确的顺序一起或单独导入。否则, CloudFormation 部署将因未解析的引用而失败。
-
此命令使用部署角色证书,这是读取加密暂存存储桶所必需的。这需要引导模板的版本 12,其中包括部署角色的必要IAM权限。
使用量
$
cdk import
<arguments>
<options>
参数
- CDK堆栈 ID
-
要从您的应用程序导入资源的CDK堆栈的构造 ID。可以在单个命令中多次提供此参数。
类型:字符串
必需:否
Options
查看适用于所有选项的全局选项列表 CDK CLI 命令,请参阅全球期权。
--change-set-name
STRING
-
要创建的 CloudFormation 更改集的名称。
--execute
BOOLEAN
-
指定是否执行变更集。
默认值:
true
--force, -f
BOOLEAN
-
默认情况下,CDKCLI 如果模板差异包含更新或删除,则退出进程。指定覆盖
true
此行为并始终继续导入。 --help, -h
BOOLEAN
-
显示命令的
cdk import
命令参考信息。 --record-resource-mapping, -r
STRING
-
使用此选项生成现有物理资源与将要导入的CDK资源的映射。映射将写入您提供的文件路径。不会执行任何实际的导入操作。
--resource-mapping, -m
STRING
-
使用此选项来指定用于定义资源映射的文件。的 CDK CLI 将使用此文件将物理资源映射到要导入的资源,而不是以交互方式询问您。
此选项可以从脚本运行。
--rollback
BOOLEAN
-
出现故障时将堆栈回滚到稳定状态。
要指定
false
,您可以使用--no-rollback
或-R
。指定
false
以更快地进行迭代。包含资源替换的部署将始终失败。默认值:
true
--toolkit-stack-name
STRING
-
要创建的CDK工具包堆栈的名称。
默认情况下,
CDKToolkit
将名为的堆栈cdk bootstrap
部署到指定 AWS 环境中。使用此选项为您的引导堆栈提供不同的名称。的 CDK CLI 使用此值来验证您的引导堆栈版本。