上下文:我一直在使用CloudFormation配置应用程序资源,这已经很好了。但是,我最近将我的应用程序移到了不同的基础架构(Kubernetes),为了实现这一改变,我修改了Route53 DNS记录以指向新资源,并留下了CloudFormation创建的所有AWS资源。为清楚起见,我修改的DNS记录是作为CloudFormation堆栈的一部分创建的。
问题:我想删除现在未使用的资源,包括CloudFormation堆栈本身。但是,这样做会删除我非常关心的DNS记录,或者因为已经修改而无法删除DNS记录,从而回滚整个操作。
问题:是否有人知道一种聪明的方法,我可以删除CloudFormation堆栈,同时仍保留由其创建的Route53条目,停机时间为零?
注意:我不想手动删除CloudFormation创建的资源(DNS记录除外),并让堆栈闲置。
答案 0 :(得分:2)
最近,我需要保留使用CloudFormation创建的Route53记录。我根据@jarmod响应执行了以下练习,效果很好。这里的关键是:"DeletionPolicy" : "Retain"
有关DeletionPolicy attribute的更多信息。我还将注意到,当我应用更改集更改删除策略时,CloudFormation DID不会在Route53条目中检测到任何偏移。成功!
"DeletionPolicy" : "Retain"
应用于我的Route53资源块答案 1 :(得分:1)
拒绝删除Route53的权限并分两个阶段删除堆栈。
当堆栈处于DELETE_FAILED状态时,因为AWS CloudFormation 无法删除资源,请使用以下命令重新运行删除 RetainResources参数并指定AWS的资源 CloudFormation无法删除。 AWS CloudFormation删除堆栈 不删除保留的资源。保留资源 当您无法删除资源时很有用,例如S3存储桶 包含要保留的对象,但仍要删除 堆栈。删除堆栈后,可以手动删除 通过使用关联的AWS服务保留资源。