Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 按照文件的放置顺序,将文件放入AWS lambda中的s3存储桶中_Amazon Web Services_Amazon S3_Aws Lambda_Amazon Sqs - Fatal编程技术网

Amazon web services 按照文件的放置顺序,将文件放入AWS lambda中的s3存储桶中

Amazon web services 按照文件的放置顺序,将文件放入AWS lambda中的s3存储桶中,amazon-web-services,amazon-s3,aws-lambda,amazon-sqs,Amazon Web Services,Amazon S3,Aws Lambda,Amazon Sqs,我当前的工作流程如下: 用户将文件放入s3 bucket->s3 bucket触发事件到lambda->lambda处理s3 bucket中的文件。它还调用其他lambda 我想处理多个用户同时将文件放入s3存储桶的场景。我希望处理这些文件,以便先处理文件put first。为了处理这个问题,我希望lambda在15分钟的时间间隔内处理每个文件(例如) 因此,我想使用SQS对输入文件丢弃事件进行排队。S3可以触发一个事件到SQS。cloudwatch事件可以每15分钟触发一个lambda,lam

我当前的工作流程如下:

用户将文件放入s3 bucket->s3 bucket触发事件到lambda->lambda处理s3 bucket中的文件。它还调用其他lambda

我想处理多个用户同时将文件放入s3存储桶的场景。我希望处理这些文件,以便先处理文件put first。为了处理这个问题,我希望lambda在15分钟的时间间隔内处理每个文件(例如)

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

SQS的问题是标准SQS队列不符合顺序,FIFO SQS队列与S3不兼容(参考:)

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

谢谢


Swagatika

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


有一个新功能,SQS可以触发Lambda,但您必须进行实验,看看它如何/是否适用于FIFO队列。如果它工作正常,那就可以省去“15分钟”的时间。

我想处理文件,这样文件放在第一位就可以先得到处理。为什么?在大型分布式系统中,“第一”是一个模糊的概念。有人有解决办法吗?我们提出了一种解决方案,s3事件触发伪lambda->伪lambda逐个处理事件,并将消息写入SQS->SQS队列。cloudwatch事件每15分钟激活一次,并触发主lambda。此lambda接收cloudwatch事件并轮询sqs以获取任何消息。如果有,它将拾取最早的消息并对其进行处理。FIFO SQS尚未触发lambda(截至今天)