根据自定义规则从文件名提取的日期删除旧文件

时间:2018-09-27 09:02:23

标签: amazon-s3 aws-lambda aws-sdk

我正在尝试根据以下规则找到自动删除s3上的旧SQL备份文件的最佳方法:

  1. 保留最近7天的所有备份
  2. 保留最近6个月每天的最后备份
  3. 保留最近2年中每周的最后备份
  4. 保留每个月的上次备份超过2年的文件。

我的文件名包含备份日期时间,如下所示: XX_backup_2016_12_09_150003_4066809.bak

您推荐什么? AWS Lambda还是什么?

1 个答案:

答案 0 :(得分:1)

考虑将S3 Lifecycle RulesObjectTagging一起使用。

您可以使用S3 Eventstrigger a lambda for each PutObject。您的lambda可以根据您概述的规则在S3对象上创建标签。文件名将从S3事件输入到lambda。

也就是说:

  1. 保留最近7天的所有备份(保留7天的默认标签)
  2. 保留最近6个月每天的最后一次备份(标记为6个月保留)
  3. 保留最近2年中每周的最后一次备份(标记为2年保留)
  4. 保留每个月的上次备份以保存2年以上的文件(x保留标记)

lambda可以处理极端情况,以确定是否需要同时使用6个月和2年的特定文件。如果没有其他标签可以保留7天,则可以使用默认标签。

然后可以根据标签创建和应用带有过期期限的生命周期规则。