AWS lambda 函数从 s3 检索任何上传的文件并将解压缩的文件夹再次上传回 s3
AWS lambda function to retrieve any uploaded files from s3 and upload the unzipped folder back to s3 again
我有一个 s3 存储桶,用于用户上传压缩目录,通常大小为 1GB。压缩目录包含子文件夹中的图像等。
我需要创建一个 lambda 函数,它将在新上传时触发,解压缩文件,并将解压缩的内容上传回 s3 存储桶,这样我就可以通过 http 访问各个文件 - 但是我对如何编写这样的函数一无所知?
我的顾虑是:
- Pyphon 或 Java 可能比 nodejs 性能更好?
- 避免 运行 在解压缩 GB 或更大的文件时内存不足(我可以将内容流回 s3 吗?)
AWS Lambda 目前限制为 5 分钟的执行时间。
如果您的下载+解压+上传运行时间超过 5 分钟,Lambda 将不适合您。
这里有一些解决方案的参考:
https://serifandsemaphore.io/aws-lambda-going-beyond-5-minutes-34e381e71231#.maz4sfo43
AWS Lambda FAQ 状态:
Each Lambda function receives 500MB of non-persistent disk space in its own /tmp directory.
这将不足以 来存储 1GB 的 zip 文件以及解压缩的内容。
您需要在范围内传输 'input' zip 文件,并将解压缩的文件分成小组存储以避免此问题。对于此应用程序使用 Lambda 可能不值得。
由于其他发布者提到的原因,Lambda 不太适合文件的实际处理。但是,由于它与 S3 事件集成,因此可以用作其他事件的触发器。它可以向 SQS 发送消息,EC2(ECS、ElasticBeanstalk、ECS)上运行的另一个进程可以处理队列中的消息,然后处理来自 S3 的文件。
我有一个 s3 存储桶,用于用户上传压缩目录,通常大小为 1GB。压缩目录包含子文件夹中的图像等。
我需要创建一个 lambda 函数,它将在新上传时触发,解压缩文件,并将解压缩的内容上传回 s3 存储桶,这样我就可以通过 http 访问各个文件 - 但是我对如何编写这样的函数一无所知?
我的顾虑是:
- Pyphon 或 Java 可能比 nodejs 性能更好?
- 避免 运行 在解压缩 GB 或更大的文件时内存不足(我可以将内容流回 s3 吗?)
AWS Lambda 目前限制为 5 分钟的执行时间。
如果您的下载+解压+上传运行时间超过 5 分钟,Lambda 将不适合您。
这里有一些解决方案的参考: https://serifandsemaphore.io/aws-lambda-going-beyond-5-minutes-34e381e71231#.maz4sfo43
AWS Lambda FAQ 状态:
Each Lambda function receives 500MB of non-persistent disk space in its own /tmp directory.
这将不足以 来存储 1GB 的 zip 文件以及解压缩的内容。
您需要在范围内传输 'input' zip 文件,并将解压缩的文件分成小组存储以避免此问题。对于此应用程序使用 Lambda 可能不值得。
由于其他发布者提到的原因,Lambda 不太适合文件的实际处理。但是,由于它与 S3 事件集成,因此可以用作其他事件的触发器。它可以向 SQS 发送消息,EC2(ECS、ElasticBeanstalk、ECS)上运行的另一个进程可以处理队列中的消息,然后处理来自 S3 的文件。