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

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

Amazon CloudFormation 提供了相应的功能,让您可以通过在模板中描述现有的 Amazon 资源,从而将其导入新堆栈或现有堆栈。如果您想在无需删除和重新创建相关资源的情况下,开始使用 CloudFormation 来管理在 CloudFormation 之外创建的资源,此功能将非常实用。

CloudFormation 支持导入广泛的资源。有关更多信息,请参阅 资源类型支持

注意

要改为扫描现有的资源并自动生成模板,以用于将现有资源导入 CloudFormation 或在新账户中复制资源,请参阅 为现有资源生成模板

资源导入概述

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

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

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

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

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

注意

在使用 resource import 时,Amazon CloudFormation 仅支持一层嵌套。这意味着,您无法将堆栈导入到子堆栈中,也无法导入具有子堆栈的堆栈。

资源导入验证

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

  • 要导入的资源存在。

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

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

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

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

重要

验证模板中定义的资源及其属性是否与资源导入的预期配置相匹配,以避免意外更改。

资源导入状态代码

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

导入操作状态 描述

IMPORT_IN_PROGRESS

正在执行导入操作。

IMPORT_COMPLETE

堆栈中所有资源的导入操作均已完成。

IMPORT_ROLLBACK_IN_PROGRESS

回滚导入操作正在回滚以前的模板配置。

IMPORT_ROLLBACK_FAILED

导入回滚操作失败。

IMPORT_ROLLBACK_COMPLETE

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

导入操作期间的注意事项

  • 在导入完成后以及执行后续堆栈操作之前,我们建议对导入的资源运行偏差检测。偏差检测确保模板配置与实际配置匹配。有关更多信息,请参阅 在整个 CloudFormation 堆栈上检测偏差

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

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

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

  • 您可以使用 cloudformation:ImportResourceTypes IAM policy 条件控制用户可以在导入操作期间使用的资源类型。有关更多信息,请参阅 Amazon CloudFormation 条件

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

其他 资源

有关侧重于重构现有堆栈的场景的更多导入说明,请参阅以下主题: