dim*_*oly 7 python amazon-web-services python-3.x aws-lambda
我有一个要在AWS Lambda上运行的项目,但该项目已超过50MB的压缩限制。目前,压缩后的空间为128MB,带有虚拟环境的项目文件夹为623MB,其中包括(空间的顶级用户):
没有virtualenv
项目,则小于2MB。该requirements.txt
是:
click==6.7
cycler==0.10.0
ecdsa==0.13
Flask==0.12.2
Flask-Cors==3.0.3
future==0.16.0
itsdangerous==0.24
Jinja2==2.10
MarkupSafe==1.0
matplotlib==2.1.2
mpmath==1.0.0
numericalunits==1.19
numpy==1.14.0
pandas==0.22.0
pycryptodome==3.4.7
pyparsing==2.2.0
python-dateutil==2.6.1
python-dotenv==0.7.1
python-jose==2.0.2
pytz==2017.3
scipy==1.0.0
six==1.11.0
sympy==1.1.1
Werkzeug==0.14.1
xlrd==1.1.0
Run Code Online (Sandbox Code Playgroud)
我使用Zappa进行部署,因此我对整个基础架构的了解有限。我的理解是,某些库(很少)没有上载,因此例如numpy,该部分没有上载,并且使用了该环境中已经可用的Amazon版本。
我提出了以下工作流程(不将S3存储桶用于slim_handler
):
scipy.minimize
删除大多数内容并重新运行测试,以手动方式手动摇动scipypyminifier
要么:
compileall
以获取.pyc文件我遇到了问题slim_handler: true
,要么连接断开并且上传失败,要么发生了其他错误,并且在到S3的大约25%的上传中我得到了Could not connect to the endpoint URL
。出于这个问题的目的,我想将依赖关系降低到可管理的水平。
尽管如此,超过半数的依赖关系(主应用程序小于2MB)必须记录下来。
我的问题是:
小智 3
我发现您的所有包都可以压缩到 83MB(仅包)。
我的解决方法是:
使用以下命令将包本地安装在同一文件夹中:
pip install -r requirements.txt -t .
Run Code Online (Sandbox Code Playgroud)尝试编译为 .pyc 文件的方法,并删除其他文件。
部署:
sis deploy
Run Code Online (Sandbox Code Playgroud)希望能帮助到你。
归档时间: |
|
查看次数: |
1258 次 |
最近记录: |