Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 有没有办法通过添加延迟来触发S3上传的lambda?_Amazon Web Services_Amazon S3_Aws Lambda - Fatal编程技术网

Amazon web services 有没有办法通过添加延迟来触发S3上传的lambda?

Amazon web services 有没有办法通过添加延迟来触发S3上传的lambda?,amazon-web-services,amazon-s3,aws-lambda,Amazon Web Services,Amazon S3,Aws Lambda,我有一个Lambda函数,它是在S3 bucket的put/post事件之后触发的。如果只有一个文件上传到S3 bucket,那么这个方法可以很好地工作 但是,有时可能会上载多个文件,完成上载过程最多需要7分钟。这会多次触发lambda函数,这会增加代码处理的开销 是否有任何方法可以只触发lambda一次以完成上传,或者在函数中添加延迟,并避免多次执行lambda函数 文件上载到S3时没有特定的时间间隔,因此无法使用调度程序。这里似乎正在从客户端使用多部分上载 也许是这个的复制品 最近为Lamb

我有一个Lambda函数,它是在S3 bucket的put/post事件之后触发的。如果只有一个文件上传到S3 bucket,那么这个方法可以很好地工作

但是,有时可能会上载多个文件,完成上载过程最多需要7分钟。这会多次触发lambda函数,这会增加代码处理的开销

是否有任何方法可以只触发lambda一次以完成上传,或者在函数中添加延迟,并避免多次执行lambda函数


文件上载到S3时没有特定的时间间隔,因此无法使用调度程序。

这里似乎正在从客户端使用多部分上载


也许是这个的复制品

最近为Lambda添加了延迟功能。但是S3事件不支持它。

您可以将事件从S3发送到SQS。然后您的Lambda将使用SQS事件

播放触发Lambda函数的事件。可能是“所有对象创建事件”在多部分上载的部分上触发。您可能需要选择其他选项的组合。对于小于100 MB的文件,是否建议多部分上载?因为在这种情况下,所有文件都不会超过100MB。多部分上载是一个文件的逐块上载。S3将继续为每个文件上载向SQS发送事件,从而触发lambda功能,这是否仍然可以解决问题?文件1上传到S3->SQS队列,延迟5分钟->触发lambda函数是。正如我所写,Lambda在批处理中处理SQS事件。批量大小是可配置的。这意味着您可以在一次Lambda调用中处理100个上传的文件。