You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudFormation更新是否先创建新资源再删除旧资源?SNS-Lambda场景求证

CloudFormation 更新顺序与消息不丢失保障方案
  • 首先明确:CloudFormation 的默认更新逻辑确实倾向于先创建新增资源、再更新现有资源、最后删除已移除资源,但AWS官方文档并未将此列为绝对的既定规则,依赖默认顺序存在潜在风险。

  • 针对你要在SNS与Lambda间新增SQS队列且不丢消息的场景,最稳妥的方案是分两次执行CloudFormation更新:

    1. 第一次更新:仅添加SQS队列和SNS到该SQS的订阅,保留原有的SNS→Lambda订阅。这一步中,CloudFormation会优先创建新的SQS和订阅资源,原订阅不受影响,消息会同时发送到Lambda和SQS,你的Lambda已兼容两种格式,不会出现问题。
    2. 第二次更新:确认SQS及其下游消费逻辑(比如Lambda从SQS拉取消息)运行正常后,再移除原有的SNS→Lambda订阅。
  • 如果一定要在单次更新内完成操作,需要通过显式依赖强制顺序:
    你可以给原有的SNS→Lambda订阅资源添加DependsOn属性,依赖新创建的SQS队列和SNS→SQS订阅。不过要注意,这种方式虽然能强制CloudFormation先完成新资源的创建再处理旧资源的删除,但AWS对删除操作的依赖处理不如创建/更新稳定,因此分两次更新的风险更低。

内容的提问来源于stack exchange,提问作者matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 00:44:55