【发布时间】:2019-11-15 10:15:30
【问题描述】:
我在 cloudformation 中有一个堆栈(ECS 集群、App LB、Autoscaling Group、启动模板等)。它一切正常,我们已经在生产和预生产环境中使用了一段时间。
最近在尝试推送堆栈更新时出现了问题。我对 AWS::EC2::LaunchTemplate 中的 UserData 做了一些更改。如果我从这个模板启动一个新堆栈,它会很好用。
但:
如果我进行更改集并应用堆栈更新 cloudformation 创建一个新的启动模板版本 - 但是 - 自动缩放组仍然引用旧版本。
查看 AWS::AutoScaling::AutoScalingGroup LaunchTemplateSpecification 的 AWS 文档
我明白了: “AWS CloudFormation 不支持为模板版本号指定 $Latest 或 $Default。”
是否有人因堆栈更新而争吵创建需要在其他地方引用的新版本资源?我觉得我错过了一些明显的东西。
【问题讨论】:
-
所以我开始想也许我可以用 UpdateReplacePolicy 解决这个问题,但我在文档中发现“UpdateReplacePolicy 仅在您更新其更新行为指定为替换的资源属性时才会执行,从而导致 AWS CloudFormation用具有新物理 ID 的新资源替换旧资源。“所以在我的情况下,它看起来会被忽略 - 变更集显示此资源将被更新而不是替换。