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. 运行 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。可以在单个命令中多次提供此参数。

类型:字符串

必需:否

选项

查看适用于所有 CDK 的全局选项列表 CLI 命令,请参阅全局选项

--change-set-name STRING

要创建的 CloudFormation 更改集的名称。

--execute BOOLEAN

指定是否执行更改集。

默认值true

--force, -f BOOLEAN

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

默认情况下,CDKToolkit将名为的堆栈cdk bootstrap部署到指定 AWS 环境中。使用此选项可为引导堆栈提供不同的名称。

CDK CLI 使用此值来验证您的引导堆栈版本。