【问题标题】:"TypeError: 'Klein' object is not callable" while calling an endpoint from AWS Lambda“TypeError:'Klein' 对象不可调用”从 AWS Lambda 调用端点
【发布时间】:2019-01-02 21:38:14
【问题描述】:

我正在尝试运行一个简单的服务器

from klein import Klein

app = Klein()

@app.route("/")
def hello(request):
    return "Hello World!"

if __name__ == "__main__":
    run("localhost", 8080)

我使用 Zappa 将其打包并上传到 AWS 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):\\n', '  File \"/var/task/handler.py\", line 452, in handler\\n    response = Response.from_app(self.wsgi_app, environ)\\n', '  File \"/var/task/werkzeug/wrappers.py\", line 939, in from_app\\n    return cls(*_run_wsgi_app(app, environ, buffered))\\n', '  File \"/var/task/werkzeug/test.py\", line 923, in run_wsgi_app\\n    app_rv = app(environ, start_response)\\n', '  File \"/var/task/zappa/middleware.py\", line 70, in __call__\\n    response = self.application(environ, encode_response)\\n', \"TypeError: 'Klein' object is not callable\\n\"]}"

【问题讨论】:

  • 你的虚拟环境是否安装了Klein?
  • 使用您的消息中提到的zappa tail 查看日志。

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


【解决方案1】:

它不能调用对象Klein()。您需要将它添加到 virtualenv 以便导入它,因为只有 virtualenv 是使用 zappa 构建和部署的。

例如,您可以创建一个 setup.py 脚本,该脚本允许使用 pip 将您的自定义代码安装到您的虚拟环境中,如下所述:https://docs.python.org/3/distutils/setupscript.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 2018-12-25
    • 2021-04-15
    • 2011-10-01
    • 2020-11-10
    相关资源
    最近更新 更多