我们希望在创建对象10分钟后从S3中删除对象。目前有可能吗?
发布于 2019-04-24 20:33:27
我有一个工作解决方案,它是在AWS的简单队列服务和拉姆达的帮助下构建的。这适用于在s3桶中创建的所有对象。
概述
当在s3桶中创建任何对象时,存储桶将向配置有10分钟传递延迟的SQS队列发送带有对象详细信息的事件。SQS队列也是配置为触发Lambda函数。Lambda函数从发送的事件中读取对象详细信息,并从s3桶中删除该对象。所涉及的所有三个组件(s3、SQS和Lambda)都是低成本、松散耦合、无服务器的,并且自动扩展到非常大的工作负载。
所涉步骤
此代码和一个示例消息文件已上载到github回购。


要选择的重要点是选择All Object create events,并选择在第2步中为该屏幕上的最后一个下拉列表创建的队列。
Execution Role下配置它。这适用于我复制到一个s3桶中的文件。该解决方案可以支持多个S3桶到一个队列和一个lambda。
发布于 2019-04-24 21:28:21
除了@taterhead提出的涉及SQS队列的详细解决方案外,还可以考虑使用AWS阶跃函数的以下无服务器解决方案
它的优点是:(1)没有15分钟的限制;(2)避免由Lambda函数产生的连续队列轮询成本。
发布于 2019-04-23 13:55:52
如果还有人对此感兴趣,那么S3现在提供了我刚刚研究过的生命周期规则,它们看起来很简单,可以在AWS S3控制台中进行配置。
S3桶的"Management“选项卡将显示一个标记为”添加生命周期规则“的按钮,在该按钮中,用户可以为对象选择特定的前缀,还可以为要修改的桶中的对象的生存期设置过期时间。
为了获得更详细的解释,AWS已经发表了一篇关于这一问题的文章,其中更详细地解释了这里。
https://stackoverflow.com/questions/40904782
复制相似问题