通过 CDK 应用程序的 AWS 控制台删除少量资源

Deletion of few resources through AWS console for a CDK application

我遇到一个问题,我在我的 CDK(云开发工具包)应用程序的所有 AWS 账户中看到许多冗余日志组。如果我通过控制台删除这些日志组会不会有问题? CDK 的新手,只是想确保这样做是安全的。

日志组,如果找不到,要么在需要时重新创建,要么被 AWS 中的大多数服务忽略。您可以自由清理它们,但任何解析它们的 Insight 查询、仪表板或可能的任何自定义服务都会受到影响,但如果它们是您的,那么您可以。

在您的 cdk 中,您需要在日志组上设置 removal_policy 属性 并将其设置为 DELETE

在python中:

from aws_cdk import core as cdk
from aws_cdk import aws_logs as logs
...
log_group = logs.LogGroup(
    self, "MyLogGroup",
    removal_policy = cdk.RemovalPolicy.DESTROY
    )

这将导致它们在您的堆栈被删除或被移除时被删除。

您还可以设置一个类似的 retention 策略,可以让日志在 x 时间后自行清理,使用 python 中的 retentions 关键字,并且 logs.RetentionDays.THREE_MONTHS 或任何你想要的。

补充一下,我无法通过 CDK 控制大部分日志组,因为日志组是自动创建的,可能是在创建一些 AWS 资源(如 ECS、lambda)并删除它们时,CloudFormation 通常有一个保留日志政策,他们落后了。只要日志组未在任何云形成堆栈中引用,您就可以从控制台清理日志组。