排解回應錯誤

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

檢視記錄

  1. 在 GCP 主控台中,前往「Stackdriver Logging」>「Logs」(記錄) 頁面 (記錄檢視器)。

    前往「Logs Viewer」(記錄檢視器) 頁面

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

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

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

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

下節針對特定錯誤訊息提供疑難排解資訊。如果您還是無法修正問題,請複製顯示錯誤的記錄項目並貼到文字檔中,然後連同記錄檔並透過任何您所知的方式聯繫 Google。

503 Service Unavailable

App Engine 可能需要幾分鐘的時間,才能成功回應要求。如果您在提出要求後收到 503 錯誤,請等待幾分鐘的時間,然後再次提出要求。如果您還是沒收到成功的回應,請查看 Stackdriver 記錄檔。以下列出您可能會在 Stackdriver 記錄檔中看到的部分特定錯誤訊息。

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

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\"}"

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
App Engine 適用的 Cloud Endpoints Frameworks
需要協助嗎?請前往我們的支援網頁