Emi*_*ova 4 amazon-web-services aws-lambda
下载20M文件时,Amazon Lambda函数调用偶尔会失败,设备上没有剩余空间/tmp.lambda限制页面清楚地表明,短暂磁盘容量("/ tmp"空间)的限制是512M,可能是每个lambda调用,而不是每个lambda函数的所有调用.
以下是详细信息:
同时调用lambda函数(java 8运行时,角色"lambda_basic_execution")(40个并发调用).每次调用都从s3下载数据(在所有情况下,数据都低于512M限制).随机地,这些调用中有4到5个失败,设备错误没有剩余空间.我相信这些调用中的一些最终会在同一台机器和相同的JVM中共享,它们共享512M临时磁盘的限制.对我来说听起来像个错误.
这是堆栈跟踪:
.....Caused by: java.io.IOException: No space left on device at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(FileOutputStream.java:326) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:122) at com.amazonaws.services.s3.internal.ServiceUtils.downloadToFile(ServiceUtils.java:295) ... 5 more
Run Code Online (Sandbox Code Playgroud)
任何建议或解决方法将不胜感激.
Cross发布在这里:https://forums.aws.amazon.com/thread.jspa?threadID = 209428
每个Lambda函数在其自己的/ tmp目录中接收500MB的非持久磁盘空间.
您的环境可能会被重用,因此您的临时文件可能会累积并最终超出限制:
为了提高性能,AWS Lambda可以选择保留您的函数实例并重复使用它来提供后续请求,而不是创建新副本.您的代码不应该假设这总是会发生.
因此,尝试删除不再需要的临时文件.您还可以插入一些调试代码来列出/tmp目录中可能包含的内容以确定原因.
| 归档时间: |
|
| 查看次数: |
3959 次 |
| 最近记录: |