首页 > 解决方案 > AWS Lambda 生成大型文件到 S3

问题描述

目前我们有一个 aws lambda(基于 java 的运行时),它以 SNS 作为输入,然后执行业务逻辑并生成 1 个 XML 文件,将其存储到 S3。

现在的实现是在 .tmp 位置创建 XML,我们知道 aws lambda (500mb) 有空间限制。

我们有什么办法仍然使用 lambda,但可以在不使用 .tmp 文件夹的情况下将 XML 文件流式传输到 S3?

我做了研究,但仍然没有找到解决方案。

谢谢你。

标签: amazon-web-servicesamazon-s3aws-lambda

解决方案


如果您可以将文件拆分为块并且不需要在处理文件结尾时更新文件的开头,则可以使用分段上传提供准备就绪的块,然后为下一个块释放内存。

否则,您仍然需要临时存储 XML 的所有部分。您可以使用 DynamoDB 或 Redis,当您在那里收集 XML 的所有部分时,您可以开始逐部分上传,然后清理数据库(或设置 TTL 以自动清理)。


推荐阅读