按照放入文件的顺序处理文件放入AWS Lambda的s3存储桶中

时间:2018-08-10 02:14:38

标签: amazon-web-services amazon-s3 aws-lambda amazon-sqs

我当前的工作流程如下:

用户将文件放入s3存储桶-> s3存储桶将事件触发给lambda-> lambda处理s3存储桶中的文件。它还会调用其他lambda。

我想处理多个用户同时将文件放到s3存储桶中的情况。我要处理文件,以便首先处理文件。为了解决这个问题,我希望lambda在15分钟的间隔内处理每个文件(例如)。

因此,我想使用SQS对输入文件放置事件进行排队。 S3可以向SQS触发事件。 cloudwatch事件可以每15分钟触发一次lambda,并且lambda可以轮询SQS队列以获取第一个s3文件删除事件,并对其进行处理。

SQS的问题在于标准SQS队列不遵守顺序,并且FIFO SQS队列与S3不兼容(参考:Error setting up notifications from S3 bucket to FIFO SQS queue due to required ".fifo" suffix

我应该使用什么方法来解决这个问题?

谢谢

Swagatika

1 个答案:

答案 0 :(得分:2)

您可以让Amazon S3触发AWS Lambda函数,然后将文件信息推送到FIFO Amazon SQS队列中。

SQS可以触发Lambda,这是一项新功能,但是您必须进行实验才能了解FIFO队列如何/是否可以工作。如果效果良好,那可以消除“ 15分钟”的麻烦。