我正在尝试部署一个具有大型二进制依赖项的python包,例如numpy
、scipy
、astropy
、pandas
等等。。。zip文件的大小超过400MB,因此我必须将其大小缩小到250MB以下,才能将其从S3部署到lambda层
我知道我可以删除测试、文档和pycache目录,比如
find -name "tests" -type d | xargs rm -rf
find -name "docs" -type d | xargs rm -rf
find -name "__pycache__" -type d | xargs rm -rf
但这还不够
理论上可以删除*.pyc和*.so文件吗?我知道,例如,带有serverless-python-requirements
的serverless-framework
提供了slim
选项来打包依赖项,以删除所有*.pyc和*.so文件。但我认为Lambda环境需要这些文件。。。如果可能的话,我不想使用任何框架,我最终可以运行docker从与lambda兼容的映像构建二进制文件(我现在在WSL工作)。我尝试了很多东西,但都不起作用,我不知道为什么
我真的很感谢任何帮助,以了解什么是可能的,什么是不部署这样一个巨大的包到Lambda
当我遇到这种情况时,作为一种解决办法,我按照@jordanm的建议做了,并切换到Fargate任务
截至2020年12月,一个更简单的解决方案是对Lambda使用container image
相关问题 更多 >
编程相关推荐