AWS Lambda 是否会自动删除 /tmp 中的文件?

x89*_*x89 3 python amazon-web-services tmp aws-lambda

AWS会/tmp自动清除目录吗?

有某种flush()功能吗?如果没有,如何从文件夹中删除/删除所有文件/tmp

我有一个 AWS Lambda 函数,可以将文件下载到我的/tmp文件夹中。我解压压缩文件并对所有单个文件进行 gzip 压缩。所有这些都发生在/tmp目录内,然后我再次将 gzip 压缩的文件上传到 S3。

之后,我不再需要文件夹中的文件/tmp并想清除该目录。

如果我/tmp从本地 macOS 计算机打开,我根本看不到任何相关文件,因此我不确定如何检查它们是否已成功删除。

Erm*_*ary 5

不,来自的文件/tmp不会自动删除。


AWS Lambda 常见问题解答指出:

为了提高性能,AWS Lambda 可能会选择保留函数实例并重用它来服务后续请求,而不是创建新副本。要了解有关 Lambda 如何重用函数实例的更多信息,请访问我们的文档。您的代码不应假设这种情况总会发生。

根据上述文档和经验,您可能会发现一个空目录或“已使用”/tmp目录,具体取决于 AWS Lambda 是否为您当前的请求重用了以前的 Lambda 环境。

这可能适合也可能不适合,具体取决于用例,并且没有任何保证,因此如果您需要确保/tmp每次函数调用都有一个干净的目录,请自行清除/tmp目录


有没有flush()之类的函数?

不,AWS 不会(也不应该)通过其 SDK 以编程方式提供一种方法,因为这与文件 I/O 相关。

如何删除/tmp目录内的所有文件将取决于 Lambda 函数运行时。

对于 Python,请尝试:

from subprocess import call
...
call('rm -rf /tmp/*', shell=True)
Run Code Online (Sandbox Code Playgroud)