«TypeError: объект« Klein »не вызывается» при вызове конечной точки из AWS Lambda - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь запустить простой сервер

from klein import Klein

app = Klein()

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

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

Я упаковал и загрузил его в AWS Lambda с помощью Zappa, но я получаю это после вызова конечной точки, есть идеи, почему?

"{'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\"]}"

1 Ответ

0 голосов
/ 17 июня 2019

Невозможно вызвать объект Klein () .Вам необходимо добавить его в virtualenv, чтобы импортировать его, поскольку только virtualenv собирается и развертывается с помощью zappa.

Например, вы можете создать скрипт setup.py, который позволит установить ваш пользовательский код с pip в вашу виртуальную среду, как описано здесь: https://docs.python.org/3/distutils/setupscript.html

...