我在互联网上的许多地方都读到CloudFormation不是幂等的,但我找不到任何证明这一事实的例子。
您能否提供一个运行资源的示例来证明CloudFormation不是幂等的?
答案 0 :(得分:14)
根据维基百科的idempotent定义如下:
在计算机科学中,幂等词一词被更全面地使用 描述一个将产生相同结果的操作 执行一次或多次。
CloudFormation在其行为的几个方面被认为不是幂等的:
但是,从高层次来看,使用CloudFormation的一个主要原因是您将基础架构表示为代码,以便您可以使用它来重复生成相同的基础架构。这几乎与幂等的原始定义相同,但区别在于多次部分。如上所述,当使用相同的堆栈并在其上面应用或删除堆栈并重新创建它时,从技术上讲,您没有得到完全相同的结果,但从实际的角度来看,这是完全可以理解的完全可以接受。
答案 1 :(得分:2)
我不确定这个答案是否有用,因为该问题已于2年前发布。迟到总比没有好。
AWS CloudFormation在这两年中发生了很大变化。现在,我可以肯定地说它的API调用是幂等的。
看看这些API调用:
您会发现有一个名为 ClientRequestToken 的可选参数。这为API调用提供了幂等性。它是客户端提供的令牌,告诉CloudFormation服务它没有进行新的API调用。只要您使用相同的令牌并继续使用相同的其余参数进行呼叫,CloudFormation就知道您只是在重试该呼叫。
答案 2 :(得分:0)
如果您没有对已经完成的堆栈进行更新,则Cloudformation是幂等的,如果有更改则会更新,现在更新资源可能需要删除它并创建或更新而不创建新资源< / p>
要了解有关cfn-hup过程的更多信息,这将有助于您