通过AWS CloudFormation模板更新现有堆栈,能否保留原模板未提及的资源?
AWS CloudFormation堆栈更新时保留未包含资源的方法
默认情况下,CloudFormation会把模板当作堆栈的期望状态——如果新模板里没包含原模板的资源,更新时会自动删除这些资源。要保留它们,得用以下几种方式:
- 先将目标资源从堆栈管理中分离:
- 通过CloudFormation控制台,找到对应资源,选择“从堆栈分离”选项
- 用CLI更新时,添加
--no-delete-retain-resources参数,跟上要保留的资源逻辑ID,比如:aws cloudformation update-stack --stack-name MyStack --template-body file://new-template.yml --no-delete-retain-resources "OldResource1" "OldResource2"
- 另一种思路:先把要保留的资源导出成独立模板,将它们从原堆栈中删除(但保留实际资源实体),再用新模板更新原堆栈。
分离后的资源会脱离原堆栈的管控,后续堆栈更新不会再影响它们,需要你单独维护这些资源的生命周期和配置。
内容的提问来源于stack exchange,提问作者Ashish
相关产品推荐
相关产品推荐

