我似乎找不到任何关于手动弄乱 Cloudformation 对象时会发生什么情况的文档。
我看到它标记了其对象,但如果有人删除了路由规则,它会恢复吗?
编辑:刚刚收到两个相互矛盾的答案。我想请求一些文档/证据,因为我必须决定向同事们提供哪些关于修改这些资源的指示。
答案1
CloudFormation 仅在部署、更新或删除堆栈期间创建或修改 AWS 资源。它不会持续“检查并强制执行”单个堆栈资源的配置状态 - 肯定会发生偏差。
举例来说,如果我部署了一个 CF 堆栈,然后稍后手动修改其某个安全组上的入站规则,则此修改将持续存在,直到我运行明确的 CF 更新或重新部署该堆栈。
以下是一些有用的片段/链接:
问:我可以管理 AWS CloudFormation 堆栈中的单个 AWS 资源吗?
是的。AWS CloudFormation 不会妨碍您;您可以完全控制基础设施的所有元素。您可以继续使用所有现有 AWS 和第三方工具来管理您的 AWS 资源。
AWS CloudFormation Stacks 更新: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html
防止更新堆栈资源: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html
请注意,最后一个链接仅指在 CloudFormation 更新操作期间保护资源,而不是通过管理控制台或 API 对单个资源所做的临时更改。
答案2
如果您弄乱了 Cloudformation 部署的资源,则这些资源将无法恢复/还原/符合要求,如果您确实需要强制完整性,则需要重新部署堆栈。
答案3
据我所知,CloudFormation 本质上会强制执行“世界状态”并纠正错误配置的资源。
在您的示例中,已删除的路由规则将被重新创建。如果有人修改了 ELB 健康检查,它将被重置回模板中声明的配置。