L-S*_*els 3 amazon-web-services aws-lambda
嗨,我有一个AWS Lambda环境,其中的temp目录现在已满,我得到以下信息:
java.lang.RuntimeException: java.nio.file.FileSystemException: /tmp/out3786803744412914689: No space left on device
Run Code Online (Sandbox Code Playgroud)
它是无服务器的,所以我不能简单地登录到该框中并删除目录的内容。
除了部署代码更改以在重新启动时清除temp文件夹之外,还有什么方法可以解决此问题?
触发AWS Lambda函数时,将创建一个临时容器。然后,Lambda函数在容器中运行。
如果Lambda函数被多次触发,则可能会创建多个容器。例如,如果该功能需要5秒钟才能运行,并且在一秒钟内触发了10个功能,则可能会配置50个容器。
同样,一旦函数完成执行,如果再次触发Lambda函数,则容器可能会保留并再次使用。
因此,没有用于Lambda函数的单个“服务器”。它可能很多,也可能是被重用的一种。
建议函数/tmp在结束执行之前从中删除其临时文件。这样,该空间将可用于下一次执行。
相反,您可能希望在容器中保留一些数据,以便下次执行时像缓存一样。例如,如果该函数下载了一些参考数据,则如果容器被重用,则下次无需重新下载数据。
底线:对该函数进行编程以使其自身清除。
| 归档时间: |
|
| 查看次数: |
2751 次 |
| 最近记录: |