假设AWS堆栈是使用CloudFormation创建的。 现在,其中一个资源已在外部 CloudFormation中修改。
1)是否可以让CloudFormation专门创建这些资源?根据我的理解,我们不能这样做,因为CloudFormation不会识别差异,因此不会创建修改后的资源。我的观察是否正确?
2)此外,如果在CloudFormation外部进行修改,我还有哪些选项可以将堆栈恢复到原始状态?
答案 0 :(得分:2)
不幸的是,您的问题的答案是否。
答案 1 :(得分:1)
首先,请注意根据AWS CloudFormation Best Practices明确禁止在CloudFormation之外修改CloudFormation创建的资源 :
通过AWS CloudFormation管理所有堆栈资源
启动堆栈后,使用AWS CloudFormation console,API或AWS CLI更新堆栈中的资源。不要对AWS CloudFormation之外的堆栈资源进行更改。这样做会导致堆栈模板与堆栈资源的当前状态不匹配,如果更新或删除堆栈,可能会导致错误。
但是,如果您意外地修改了CloudFormation管理的资源并需要恢复,那么除了简单地删除和重新创建堆栈之外,您可能会遇到一些有限的选择(这可能不是一个可接受的选项): / p>
CloudFormation无法根据外部修改资源的当前状态自动更新其内部状态。
但是,根据确切的资源类型,在某些情况下,您可以手动随后通过应用与资源的当前状态匹配的堆栈更新来更新CloudFormation。
同样,CloudFormation无法自动将外部修改后的资源还原为其原始未修改的CloudFormation状态。
但是,根据确切的资源类型,在某些情况下,您可以:
答案 2 :(得分:0)
这是您可以在不删除整个堆栈的情况下使用的一种技巧。