我有一个s3存储桶,用于上传压缩目录,通常为1GB大小。压缩目录保存子文件夹中的图像等。
我需要创建一个lambda函数,它将在新上传时触发,解压缩文件,并将解压缩的内容上传回s3存储桶,这样我就可以通过http - 访问各个文件,但是我&# 39;我对如何编写这样的函数毫无头绪?
我担心的是:
答案 0 :(得分:2)
每个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处理文件。