使用 CloudFormation 对现有资源进行管理
如果创建了 Amazon 资源而未使用 Amazon CloudFormation 进行管理,您可以通过 resource import
使用 Amazon CloudFormation 对该现有资源进行管理。您可以使用 Amazon CloudFormation 管理资源(无论它们是在何处创建的),而无需删除它们并将其作为堆栈的一部分重新创建。
有关支持导入操作的 Amazon 资源列表,请参阅支持导入操作的资源。
资源导入概述
在导入操作期间,您创建一个更改集以将现有资源导入到堆栈中,或者从现有资源中创建新的堆栈。您在导入期间提供以下内容。
-
描述整个堆栈的模板,包括原始堆栈资源和您要导入的资源。每个要导入的资源必须具有 DeletionPolicy 属性。
-
要导入的资源的标识符。您提供两个值以标识每个目标资源。
-
标识符属性。这是一个资源属性,可用于标识每种资源类型。例如,可以使用
BucketName
标识AWS::S3::Bucket
资源。 -
标识符值。这是目标资源的实际属性值。例如,
BucketName
属性的实际值可能是MyS3Bucket
。
-
资源导入验证
在导入操作期间,CloudFormation 执行以下验证。
-
要导入的资源存在。
-
每个要导入的资源的属性和配置值符合资源类型架构要求,该架构定义了它接受的属性、必需的属性和支持的属性值。
-
在模板中指定了必需的属性。在资源和属性参考中列出了每种资源类型的必需属性。
-
要导入的资源不属于同一区域中的其他堆栈。
CloudFormation 不检查模板配置与资源属性的实际配置是否匹配。
重要
验证模板中定义的资源及其属性是否与资源导入的预期配置相匹配,以避免意外更改。
资源导入状态代码
下表描述了与 resource
import
一起使用的各种状态类型。
导入操作状态 | 描述 |
---|---|
|
正在执行导入操作。 |
|
堆栈中所有资源的导入操作均已完成。 |
|
回滚导入操作正在回滚以前的模板配置。 |
|
导入回滚操作失败。 |
|
导入已回滚到以前的模板配置。 |
导入操作期间的注意事项
-
在导入完成后以及执行后续堆栈操作之前,我们建议对导入的资源运行偏差检测。偏差检测确保模板配置与实际配置匹配。
-
导入操作不允许创建新资源,删除资源或更改属性配置。
-
要导入的每个资源必须具有
DeletionPolicy
属性,才能成功完成导入操作。DeletionPolicy
可以设置为任何可能的值。仅目标资源需要使用DeletionPolicy
。已属于堆栈的资源不需要使用DeletionPolicy
。 -
您不能将同一资源导入多个堆栈。
-
您可以使用
cloudformation:ImportResourceTypes
IAM policy 条件控制 IAM 用户可以在导入操作期间使用的资源类型。 -
Amazon CloudFormation 堆栈限制在导入资源时适用。有关限制的更多信息,请参阅 Amazon CloudFormation 限制。