簡體   English   中英

如何在 AWS Lambda 上使用 Python 從 Zappa 獲取堆棧跟蹤

[英]How do I get a stack trace from Zappa with Python on AWS Lambda

我在 AWS Lambda 上使用 Zappa 框架https://github.com/Miserlou/Zappa和 Python 和 Flask。 當它引發異常時,它會出現在 CloudWatch 日志中,但我無法辨認。 但是,我確實在調試版本中從 HTTP GET 返回了一個正常的 Flask 堆棧跟蹤。

我的問題是如何在日志/生產代碼中獲得合理的(Flask)堆棧跟蹤? 當生產中出現異常時,我所擁有的只是日志消息。

來自 HTTP GET 的良好堆棧跟蹤:

Traceback (most recent call last):
  File "/var/task/handler.py", line 96, in handler
    response = Response.from_app(app, environ)
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/Werkzeug/werkzeug/wrappers.py", line 865, in from_app
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/Werkzeug/werkzeug/wrappers.py", line 57, in _run_wsgi_app
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/Werkzeug/werkzeug/test.py", line 871, in run_wsgi_app
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/zappa/zappa/middleware.py", line 78, in __call__
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/flask/flask/app.py", line 1836, in __call__
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/flask/flask/app.py", line 1820, in wsgi_app
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-jvEYWI/flask-restful/flask_restful/__init__.py", line 271, in error_router
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/flask/flask/app.py", line 1403, in handle_exception
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-jvEYWI/flask-restful/flask_restful/__init__.py", line 268, in error_router
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/flask/flask/app.py", line 1817, in wsgi_app
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/flask/flask/app.py", line 1477, in full_dispatch_request
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-jvEYWI/flask-restful/flask_restful/__init__.py", line 271, in error_router
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/flask/flask/app.py", line 1381, in handle_user_exception
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-jvEYWI/flask-restful/flask_restful/__init__.py", line 268, in error_router
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/flask/flask/app.py", line 1475, in full_dispatch_request
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/flask/flask/app.py", line 1461, in dispatch_request
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-jvEYWI/flask-restful/flask_restful/__init__.py", line 477, in wrapper
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-v6XvIH/flask/flask/views.py", line 84, in view
  File "/private/var/folders/1j/5zcxjzkx29b8tfgrh2y90wt80000gn/T/pip-build-jvEYWI/flask-restful/flask_restful/__init__.py", line 587, in dispatch_request
  File "/Users/notacat/src/aws-lambda/zappa/controllers/error_controller.py", line 15, in get
TestError: 'This is a test error'

難以理解 CloudWatch 日志中的堆棧跟蹤:

...Rlc3RFcnJvcjogJ1RoaXMgaXMgYSB0ZXN0IGVycm9yJzxiciAvPjwvcHJlPg==: 
Exception Traceback (most recent call last): 
File "/var/task/handler.py", line 161, in lambda_handler return LambdaHandler.lambda_handler(event, context) 
File "/var/task/handler.py", line 55, in lambda_handler return cls().handler(event, context) 
File "/var/task/handler.py", line 155, in handler raise Exception(exception) 
Exception: PCFET0NUWVBFIGh0bWw+NTAwLiBGcm9tIFphcHBhOiA8cHJlPidUaGlzIGl...

這看起來像一個老問題,但我使用的是 Zappa 0.45.1,當通過 CloudWatch AWS 終端和使用提供 CloudWatch 日志和一些附加信息的zappa tail發生錯誤時,我可以看到我的 python 堆棧跟蹤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM