AWS lambda函数用于从s3检索任何上载的文件,并再次将解压缩的文件夹上载回s3

时间:2016-11-16 08:38:46

标签: java python amazon-web-services amazon-s3 aws-lambda

我有一个s3存储桶,用于上传压缩目录,通常为1GB大小。压缩目录保存子文件夹中的图像等。

我需要创建一个lambda函数,它将在新上传时触发,解压缩文件,并将解压缩的内容上传回s3存储桶,这样我就可以通过http - 访问各个文件,但是我&# 39;我对如何编写这样的函数毫无头绪?

我担心的是:

  • Pyphon或Java可能比nodejs有更好的性能吗?
  • 解压缩GB或更多文件时,请避免内存不足(我可以将内容流回s3吗?)

3 个答案:

答案 0 :(得分:2)

AWS Lambda FAQ州:

  

每个Lambda函数在其自己的/ tmp目录中接收 500MB 的非持久性磁盘空间。

用于存储1GB压缩文件以及解压缩的内容。

您需要流式传输'输入' zip文件的范围,并将解压缩的文件存储在小组中以避免此问题。使用Lambda进行此应用程序可能不值得

答案 1 :(得分:1)

AWS Lambda目前仅限于5分钟的执行时间。

如果你的下载+解压缩+上传的运行时间超过5分钟,那么Lambda将不适合你。

以下是一些解决方案的参考: https://serifandsemaphore.io/aws-lambda-going-beyond-5-minutes-34e381e71231#.maz4sfo43

答案 2 :(得分:0)

由于其他海报提到的原因,Lambda不适合实际处理文件。但是,由于它与S3事件集成,因此可以将其用作其他内容的触发器。它可以向SQS发送消息,其中在EC2上运行的另一个进程(ECS,ElasticBeanstalk,ECS)可以处理队列中的消息,然后从S3处理文件。