在AWS Lambda上部署WSGi应用程序

时间:2018-06-06 01:34:44

标签: python amazon-web-services aws-lambda serverless

我正在尝试部署基于WSGi的应用程序,该应用程序是在AWS Lambda上使用Python,Flask构建的。

但是,似乎请求的往返行程正在进行,但是当返回请求时,werkzeug模块无法调用LambdaContext:不是可调用对象。

'LambdaContext'对象不可调用:TypeError Traceback(最近一次调用最后一次): 文件“/home/ubuntu/venv/local/lib/python2.7/site-packages/flask/app.py”,第1997行,致电 在wsgi_app中输入文件“/home/ubuntu/venv/local/lib/python2.7/site-packages/flask/app.py”,第1989行 文件“/tmp/pip-install-Xytrxp/Werkzeug/werkzeug/wrappers.py”,第1277行,致电 TypeError:'LambdaContext'对象不可调用

我正在尝试使用无服务器进行部署但我的问题是,当我使用无服务器构建部署包时,它将超过250 MB,这是AWS Lambda的限制

我已经使用Zappa构建了包,删除了python包中的一些不必要的文件,其大小为248 MB。我能够使用它进行部署,但使用无服务器部署会引发问题。

那么,有人知道无服务器的功能吗?我们可以在AWS Lambda部署包中包含serve.py和wsgi.py文件吗?

如果是,那么需要更多的更改才能将这些python文件添加到部署包中,以使应用程序无服务器。

1 个答案:

答案 0 :(得分:0)

我能够通过使用serverless-wsgi来处理这个问题。我们只需要包含wsgi.py和.wsgi_app文件,并需要将wsgi.handler作为Lambda函数处理程序