我试图了解在AWS Lambda中与Python包一起包括.pyc文件的确切影响。
我能找到的极少数参考资料都说不需要将.pyc文件与包一起包含。然而,当我不包含这些文件时,我的Lambda函数的性能会受到严重影响。
尝试将库(例如Jinja2)与我的包一起使用时,如果省略其.pyc文件,则导入jinja2所需的时间总是超过3秒。
当我提供.pyc文件时,第一次执行仍然需要3秒钟,但之后它会降至100-200ms(我猜直到函数最终被卸载为止?)。
我发现了这个SO问题,它可能表明AWS Lambda无法保存自己的编译文件,这有道理吗?
我的问题是 - 有没有关于在AWS Lambda上使用Python中.pyc文件的确定信息来源?有没有办法让AWS Lambda保存自己的.pyc文件?还是我应该继续将它们与我的包一起包含?
pyc
文件是否存在只应该影响每个 AWS Lambda 容器的初始化,因为之后所有内容都应该保留在 RAM 中。所以我很困惑,你为什么会看到每个请求都有延迟。你是否对性能影响进行了任何结构化测试? - Dunedanpython -m compileall
。这个项目目前不大,但预计会不断增长。我知道我可以使用EC2(对于其他项目我已经在使用),但我的问题是关于AWS Lambda的一个特定而令人困惑的问题... - danielv