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

默认情况下,如果模板差CLI异包含更新或删除,CDK 将退出该进程。指定覆盖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 工具包堆栈的名称