如何修复漂移的 AWS CloudFormation 堆栈?

How to fix a drifted AWS CloudFormation stack?

如何修复偏移的 AWS CloudFormation 堆栈?我修改了一个 BackendECS 服务,它现在是 "drifted" 但是没有关于如何解决这个问题的信息?这让我发疯?关于如何解决此问题的零信息?

Amazon AWS 允许通过其 "Drift Detection" 功能对漂移堆栈进行故障排除。

可以通过导航到 CloudFormation > Select Stack > Actions > Detect Drift for current stack 来访问偏差检测

更多相关信息:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/detect-drift-stack.html

使用此诊断工具,您可以准确查看 AWS 配置与 cloudformation 预期状态相比有何不同。

有几种方法可以解决这个问题。

1) 如果您通过基础架构即代码服务进行了自动更新,请回滚您的更改

2) 如果您手动更新了 ECS 服务,请将设置更改回漂移检测中显示的预期状态。一旦您的系统恢复到预期状态,您的堆栈就会正常运行

3) 删除当前堆栈资源并重新创建它 - 这是解决此问题的危险方法,因为您将丢失更新历史记录和回滚状态。

我对 cloudformation 也有类似的问题,同样仍然缺乏关于如何将实例“漂移”回模板指定的内容的文档。我发现注释掉漂移的实体允许 cloudformation 将其“删除”,然后取消注释将其恢复到所需状态。

就是说,我会赞成只使用 terraform 的动议,因为无论何时执行应用程序,强制执行模板都是默认行为。