使用 CloudFormation 对现有资源进行管理 - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 CloudFormation 对现有资源进行管理

如果创建了 AWS 资源而未使用 AWS CloudFormation 进行管理,您可以通过 resource import 使用 AWS CloudFormation 对该现有资源进行管理。您可以使用 AWS CloudFormation 管理资源(无论它们是在何处创建的),而无需删除它们并将其作为堆栈的一部分重新创建。

有关支持导入操作的 AWS 资源列表,请参阅支持导入操作的资源

资源导入概述

在导入操作期间,您创建一个更改集以将现有资源导入到堆栈中,或者从现有资源中创建新的堆栈。您在导入期间提供以下内容。

  • 描述整个堆栈的模板,包括原始堆栈资源和您要导入的资源。每个要导入的资源必须具有 DeletionPolicy 属性。

  • 要导入的资源的标识符。您提供两个值以标识每个目标资源。

    • 标识符属性。这是一个资源属性,可用于标识每种资源类型。例如,可以使用 BucketName 标识 AWS::S3::Bucket 资源。

    • 标识符值。这是目标资源的实际属性值。例如,BucketName 属性的实际值可能是 MyS3Bucket

资源导入验证

在导入操作期间,AWS CloudFormation 执行以下验证。

  • 要导入的资源存在。

  • 每个要导入的资源的属性和配置值符合资源类型架构要求,该架构定义了它接受的属性、必需的属性和支持的属性值。

  • 在模板中指定了必需的属性。在资源和属性参考中列出了每种资源类型的必需属性。

  • 要导入的资源不属于同一区域中的其他堆栈。

AWS CloudFormation 不检查模板配置与资源属性的实际配置是否匹配。

资源导入状态代码

下表描述了与 resource import 一起使用的各种状态类型。

导入操作状态 描述

IMPORT_IN_PROGRESS

当前正在执行导入操作。

IMPORT_COMPLETE

对于堆栈中支持 resource import 的所有资源,已成功完成导入操作。

IMPORT_ROLLBACK_IN_PROGRESS

导入将回滚到以前的模板配置。

IMPORT_ROLLBACK_FAILED

对于堆栈中的至少一个资源,导入回滚操作失败。将提供 CloudFormation 成功导入的资源的结果。

IMPORT_ROLLBACK_COMPLETE

导入成功回滚到以前的模板配置。

导入操作期间的注意事项

  • 在导入完成后以及执行后续堆栈操作之前,我们建议对导入的资源运行偏差检测。偏差检测确保模板配置与实际配置匹配。

  • 导入操作不允许创建新资源,删除资源或更改属性配置。

  • 要导入的每个资源必须具有 DeletionPolicy 属性,才能成功完成导入操作。DeletionPolicy 可以设置为任何可能的值。仅目标资源需要使用 DeletionPolicy。已属于堆栈的资源不需要使用 DeletionPolicy

  • 您不能将同一资源导入到多个堆栈中。

  • 您可以使用 cloudformation:ImportResourceTypes IAM 策略条件控制 IAM 用户可以在导入操作期间使用的资源类型。

  • AWS CloudFormation 堆栈限制在导入资源时适用。有关限制的更多信息,请参阅 AWS CloudFormation 限制

资源导入入门