在使用 aws-cdk 时,通常必须将现有资源导入堆栈。当我们“销毁”堆栈时,我们理所当然地认为我们导入的现有资源不会与其他所有资源一起删除。
是否可以在销毁过程中明确不销毁资源?
答案 0 :(得分:0)
导入的资源实际上不会成为新堆栈的一部分(即它们不会是生成的 CloudFormation 中的资源)。因此,如果您只关心这些资源,则无需担心。
如果您想确保在删除堆栈时不会删除堆栈中的某些内容,您可以调用资源上的 applyRemovalPolicy(RemovalPolicy.RETAIN)
。
答案 1 :(得分:0)
Jason Wadsworth 在applyRemovalPolicy()
上面给出了一个很好的答案。
您可以在资源级别和堆栈级别应用策略。
您还可以为您的用户(可能包括您用于 cdk 的 API 用户)设置适当的 IAM 策略,以便他们即使想要删除您的受保护资源也无法删除。
您可能需要查看 aws-cli 支持的 --enable-termination-protection
标志。
最后,一种确保给定资源不会被无意删除的廉价且简单的方法是在 cdk 之外简单地定义资源,例如通过控制台、aws-cli 等
首先,这可能有助于让您或同事放心,例如,如果有一堆外部依赖项和考虑因素(如白名单和第三项),您或同事不会意外地将 EIP 之类的东西返回到 Amazon 的池中——与之相关的派对防火墙规则。
欢迎使用 StackOverflow,不要忘记“接受”您认为对您的问题提供最佳解决方案的答案:)。