使用 zappa 将我的 django 应用程序部署到 lambda 后,我遇到了错误。
这是错误:
{'message': 'An uncaught exception happened while servicing this request. You can investigate this with the `zappa tail` command.', 'traceback': ['Traceback (most recent call last):', ' File /var/task/handler.py, line 540, in handler with Response.from_app(self.wsgi_app, environ) as response:', ' File /var/task/werkzeug/wrappers/base_response.py, line 287, in from_app return cls(*_run_wsgi_app(app, environ, buffered))', ' File /var/task/werkzeug/wrappers/base_response.py, line 26, in _run_wsgi_app return _run_wsgi_app(*args)', ' File /var/task/werkzeug/test.py, line 1119, in run_wsgi_app app_rv = app(environ, start_response)', TypeError: 'NoneType' object is not callable]}
这些是我的 zappa 设置:
{
"production": {
"aws_region": "eu-west-2",
"django_settings": "app.settings",
"profile_name": "deployment",
"project_name": "app",
"runtime": "python3.6",
"s3_bucket": "zappa-deployment-uploads",
"slim_handler": true,
"exclude": [".ebextensions/", ".elasticbeanstalk/", "webpack/", "app/static/"],
"vpc_config" : {
"SubnetIds": [ "..."],
"SecurityGroupIds": ["..."]
}
}
我已确保我的 API 网关主机名已添加到允许的主机设置并重新部署。
我已经调用了 zappa tail,但它给了我一个更短的错误响应"'NoneType'对象不可调用"。
谁能理解我为什么会得到这个?
代码中抛出了一个异常。 我发现在使用AWS Lambda和Zappa时NoneType
这是一个一般性错误,掩盖了真正的问题。
一些调试步骤:
- 确保代码在运行时在本地工作
python manage.py runserver
- 在代码中的不同位置输出控制台消息,并运行
zappa tail
以识别出现问题的代码部分 - 重复上述选项,直到缩小问题的位置。
我遇到了类似的问题,尝试安装不同版本的 flask,发现它实际上在我的 zappa 配置文件中。我"slim_handler" : "True"
,删除它为我解决了问题。