在 AWS-CDK 中销毁堆栈时不要删除现有资源

Do not delete existing resources when destroying a stack in AWS-CDK

在使用 aws-cdk 时,通常必须将现有资源导入堆栈。当我们“销毁”堆栈时,我们理所当然地认为我们导入的现有资源不会与其他所有内容一起删除。

是否可以在销毁过程中明确地不销毁资源?

导入的资源实际上不会成为新堆栈的一部分(即它们不会成为生成的 CloudFormation 中的资源)。因此,如果您只关心这些资源,则无需担心。

如果您想确保在删除堆栈时堆栈中的某些内容没有被删除,您可以在资源上调用 applyRemovalPolicy(RemovalPolicy.RETAIN)

Jason Wadsworth 在 applyRemovalPolicy().

上面给出了很好的答案

您可以在资源级别和堆栈级别应用策略。

您还可以注意为您的用户(可能包括您用于 cdk 的 API 用户)设置适当的 IAM 策略,以便他们无法删除您的受保护资源,即使他们想要.

您可能想查看 aws-cli 支持的 --enable-termination-protection 标志。

最后,确保给定资源不会被无意中删除的一种廉价且简单的方法需要最少的 aws 知识 + cdk 经验,即简单地在 cdk 之外定义资源,例如通过控制台、aws-cli 等

开始时,这可能有助于让您或同事放心,不会意外地 return 亚马逊池中的 EIP 之类的东西,例如,如果存在大量外部依赖项,并且白名单和与之相关的第三方防火墙规则等注意事项。

欢迎使用 Whosebug,不要忘记“接受”您认为能为您的问题提供最佳解决方案的答案:)。