gpt4 book ai didi

python - AWS Lambda 是否自动删除了/tmp 中的文件?

转载 作者:行者123 更新时间:2023-12-05 03:36:03 25 4
gpt4 key购买 nike

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

是否有 flush() 之类的函数?如果没有,我如何从 /tmp 文件夹中移除/删除所有文件?

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

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

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

最佳答案

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


AWS Lambda FAQs状态:

To improve performance, AWS Lambda may choose to retain an instance of your function and reuse it to serve a subsequent request, rather than creating a new copy. To learn more about how Lambda reuses function instances, visit our documentation. Your code should not assume that this will always happen.

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

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


Is there a flush() sort of function?

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

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

对于 Python,尝试:

from subprocess import call
...
call('rm -rf /tmp/*', shell=True)

关于python - AWS Lambda 是否自动删除了/tmp 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69706267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com