排查 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」更多的資訊來表達

相關內容