排解回應錯誤

當您對 Cloud Endpoints Frameworks API 提出要求,但沒有得到成功的回應時,可以利用Google Cloud 主控台中的 Cloud Logging 來排解問題。

查看記錄

  1. 在 Google Cloud 控制台中,依序前往「Logging」 >「Logs Explorer」頁面。

    前往「Logs Explorer」頁面

  2. 在頁面頂端的專案下拉式清單中,選取您之前在其中建立 API 的Google Cloud 專案。

  3. 選取 [GAE Application] (GAE 應用程式) 和 [All logs] (所有記錄)

  4. 調整時間範圍,直到您看見顯示錯誤的資料列為止。

  5. 按一下 [Expand All] (全部展開) 來檢視該錯誤的完整記錄檔。

下節針對特定錯誤訊息提供疑難排解資訊。如果您還是無法修正問題,請複製顯示錯誤的記錄項目並貼到文字檔中,並附在您與 Google 的任何通訊訊息中。

503 Service Unavailable

App Engine 可能需要幾分鐘的時間才能成功回應要求。如果您在傳送要求後收到 503 錯誤,請稍候幾分鐘再重新提出要求。如果您還是沒收到成功的回應,請查看 Cloud Logging 記錄檔。以下列出您可能會在 Cloud Logging 記錄檔中看到的部分錯誤訊息。

錯誤訊息 疑難排解
找不到 YOUR_PROJECT_ID.appspot.com 服務或權限遭拒。如果這是新的 Endpoints 服務,請確認您已利用 gcloud 部署服務設定。 Python 適用的 Endpoints Frameworks 無法針對您在 app.yaml 檔案中指定的服務載入服務設定時,就會記錄這項錯誤。假如您尚未利用 gcloud endpoints services deploy 部署 API 的 OpenAPI 文件,或是沒有啟用 Service Management API,就可能會發生這個錯誤。當您部署 API 的 OpenAPI 文件時,gcloud 指令會自動啟用下列服務:
  • Service Management API (servicemanagement.googleapis.com)
  • Cloud API (cloudapis.googleapis.com)
如果您已經停用上述任一服務,則必須重新啟用。詳情請參閱啟用及停用 API 一文。
已找到 YOUR_PROJECT_ID.appspot.com 服務,但找不到 SERVICE_CONFIG_ID 版本的服務設定。 Python 適用的 Endpoints Frameworks 找不到您在 app.yaml 檔案中針對 ENDPOINTS_SERVICE_VERSION 指定的服務設定 ID 時,就會記錄這項錯誤。如要修正這項錯誤:
  1. 取得服務設定 ID
  2. 編輯 app.yaml 檔案,並將 ENDPOINTS_SERVICE_VERSION 設為服務設定 ID。
  3. 重新部署應用程式:
    gcloud app deploy

404 Not Found

如果您最近遷移至 Endpoints Frameworks 第 2 版後收到 404 Not Found 錯誤訊息,請參閱以下小節來排解問題:

Invoke-WebRequest 範例的問題

在某些版本的 Windows PowerShell 中,教學課程中的 Invoke-WebRequest 範例會執行失敗。我們也收到回報,指出回應包含一系列未指定位元組,而這些位元組必須轉換成字元。如果 Invoke-WebRequest 範例沒有傳回預期的結果,請嘗試使用另一個應用程式傳送要求。請參考下列建議:

  • 啟動 Cloud Shell,然後依照您用來傳送要求的教學課程中的 Linux 步驟操作。
  • 使用第三方應用程式,例如 Chrome 瀏覽器擴充功能 Postman (由 www.getpostman.com 提供)。當您在 Postman 中建立要求時:

    • 選取 POST 做為 HTTP 動詞。
    • 選取 content-type 鍵和 application/json 值做為標頭。
    • 針對主體,請輸入:{"message":"hello world"}
    • 輸入範例應用程式的網址,例如:

      https://example-project-12345.appspot.com/_ah/api/echo/v1/echo
      
  • 下載並安裝您以命令提示字元執行的 curl。由於 Windows 不會處理單引號巢狀結構中的雙引號標記,因此您必須變更範例中的 --data 選項,如下所示:--data "{\"message\":\"hello world\"}"

後續步驟