gpt4 book ai didi

python - AWS lambda - 每次执行后发布/tmp 存储

转载 作者:IT老高 更新时间:2023-10-28 23:03:38 26 4
gpt4 key购买 nike

我有 4 个将同时调用的 lambda 函数(由 SNS),SNS 事件的频率为 5 分钟。每个函数都处理大量数据和图像(~300MB),所以我将它们存储在 /tmp 文件夹中(500MB 限制)。

在函数的开始,我写了一些代码到清理 /tmp 文件夹,以确保它没有内存不足(因为我知道 AWS lambda 有时会重用以前的容器来提高性能)。

我手动检查(创建消息并通过 SNS 发布到 4 个 lambda 函数),它工作正常。

但是当它自动运行(每 5 分钟调用一次)时,结果并不如我所愿。第一次执行没问题,但接下来,4 个甚至 4 个 lambda 函数中的 1 个抛出与“内存不足”相关的错误:“设备上没有剩余空间”,无法加载 lib,...

以前,我使用 nodejs(4.3) 它在两种情况下都可以正常工作。

但是由于某种原因我不得不改成python,主要流程和创建数据的mount是一样的。但是自动运行就失败了。

我认为问题来自先前容器(重用容器)的缓存,我检查了 /tmp 后 clean (ls -alh/tmp) 没有文件,但是当检查存储时(df/tmp)它显示已使用是 77%。

非常感谢制作干净的 /tmp 文件夹或解决方案的任何建议。谢谢!

已编辑:我用来清理 /tmp 文件夹的代码:

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

最佳答案

是的,lambda 是托管服务;如果 lambda 被重复调用,它们确实会重用相同的底层资源。这是我们面临的生产问题,并通过删除/tmp 解决了这个问题。 AWS 应在其常见问题解答中单独提及这一点。

if os.path.exists(tmp_file_path):
os.remove(tmp_file_path)
print("Removed the file %s" % tmp_file_path)
else:
print("Sorry, file %s does not exist." % tmp_file_path)

关于python - AWS lambda - 每次执行后发布/tmp 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44108712/

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