定期确定Amazon S3中的新对象

我有从各种来源添加到s3存储桶的日志。 我希望能够基于时间间隔(例如每5分钟)读取这些日志。 但是,我不想再次扫描所有对象,相反,我只需要获取自上次运行过程以来添加的所有新对象。 (在这种情况下,是5分钟前)

目前,我使用s3事件解决了此问题。当有新文件添加到s3时,它将触发lambda并将对象名称保存在dynamodb上。然后,cron作业会读取dynamodb中该表的所有内容,对其进行处理,然后立即删除。

我觉得这很麻烦。我只想使用某种增量从s3直接调用它。我想知道是否支持。

shwgy123 回答:定期确定Amazon S3中的新对象

除了使用DynamoDB,您还可以:

  • 将Amazon S3事件配置为在收到新文件时在Amazon SQS队列中创建消息
  • 您的工作人员(大概在Amazon EC2实例上)可以轮询SQS队列中的消息(如果正在等待消息,则可以使用长轮询来查询该队列,因此它不会问得太多)
  • 收到消息后,工作人员可以处理文件,然后从SQS队列中删除消息

这是一个安全,松耦合的过程,可通过将通知保留在队列中来处理工作程序中的潜在故障。如果工作人员在尝试一定次数后仍无法处理该消息,则可以将该消息自动移至死信队列进行手动调查。

本文链接:https://www.f2er.com/3148209.html

大家都在问