解决 Google App Engine 500 内部服务器错误

解决 Google App Engine 500 内部服务器错误

有什么方法可以正确排除 GAE 500 服务器错误?我知道我可以从 console.developers.google.com -> 监控 -> 日志中进行检查,但它们并没有提供太多信息。我只能从浏览器网络响应 500 内部服务器错误中得到相同的信息。

我正在寻找类似于 apache.log 或 php.log 的日志,它实际上会打印应用程序中发生的错误或异常的堆栈跟踪。

答案1

以前的答案现在已经过时了(大约三年后)。在 Google 云平台仪表板中查找“错误报告”面板。

您将获得代码中问题的堆栈跟踪(如果问题出在您的代码中,我想您可能需要将错误记录到 std err)。堆栈跟踪应该可以帮助您调试 500 错误。这是我刚刚收到的堆栈跟踪...

ImportError: No module named flask_assistant

at <module> (/base/data/home/apps/f~XXXX/20180209t180735.407529010683953771/main.py:31)
at LoadObject (/base/alloc/tmpfs/dynamic_runtimes/python27/a7637d5531ec9deb_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py:85)
at _LoadHandler (/base/alloc/tmpfs/dynamic_runtimes/python27/a7637d5531ec9deb_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py:299)
at Handle (/base/alloc/tmpfs/dynamic_runtimes/python27/a7637d5531ec9deb_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py:240)

这就是在发生 500 错误时获取堆栈跟踪的方法。

答案2

不幸的是,这个问题没有直接的答案。

通常情况下,500 错误是无法解决的,因为它是 Google 服务器内部的错误。我们建议的最多方法是指数退避根据您的请求,以便我们的基础设施可以“纠正”问题本身(它通常会这样做,并且做得相当快)。

有时,某些错误会因特定行为(例如向特定产品发送错误格式的文件或错误变量类型)而抛出 500。在这种情况下,错误应该更清楚。如果不是,请尝试收集尽可能多的信息,然后将其发布在我们的问题追踪器此错误可以用比“500”更多的信息来表达

相关内容