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

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

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

注意

有关从现有资源生成模板的更多信息,请参阅 为现有资源生成模板

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

资源导入概述

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

  • 描述整个堆栈的模板,包括原始堆栈资源和您要导入的资源。每个要导入的资源都必须具有 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 限额

资源导入入门