cdk import - AWS Cloud Development Kit (AWS CDK) v2

这是 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栈
  1. 运行 a cdk diff 以确保您的CDK堆栈没有待处理的更改。执行时cdk import,导入操作中唯一允许的更改是添加要导入的新资源。

  2. 为要导入堆栈的资源添加结构。例如,为 Amazon S3 存储桶添加以下内容:

    new s3.Bucket(this, 'ImportedS3Bucket', {});

    请勿添加任何其他更改。您还必须确保对资源当前的状态进行精确建模。对于存储桶示例,请务必包含 AWS KMS 密钥、生命周期策略以及与存储桶相关的任何其他内容。否则,后续更新操作可能无法达到预期效果。

  3. 运行 cdk import。如果CDK应用程序中有多个堆栈,请将特定的堆栈名称作为参数传递。

  4. 的 CDK CLI 将提示您传入要导入的资源的实际名称。在您提供此信息后,将开始导入。

  5. 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 使用此值来验证您的引导堆栈版本。