排解整合錯誤

Google Cloud敬上 提供多種工具,方便您監控專案可靠性 使用「Google Cloud Monitoring」並偵錯「Google Cloud Logging」的問題 錯誤記錄檔每當執行使用者意圖時發生錯誤 Google Home 數據分析管道會記錄指標失敗情形,以及 會在專案記錄檔中發布錯誤記錄。

錯誤疑難排解分為兩個步驟:

  1. 透過智慧型住宅指標監控專案狀態。
  2. 請查看 錯誤記錄檔

如果是使用 Local Home SDK。熟悉疑難排解流程後 輕鬆來回查看指標和記錄檔,取得深入分析結果 發生錯誤。

監控錯誤

您可以使用 Google Cloud Monitoring dashboard 即可查看專案指標調整了部分主要圖表 很適合用來監控品質和偵錯

  • 當您 監控專案的可靠性這張圖表中的下滑情形 指出部分或所有使用者服務中斷。建議做法 請密切監控這張圖表,瞭解每項變更後的異常狀況 或更新您的專案
  • 「第 95 個百分位數的延遲時間」圖表是瞭解 您的智慧型住宅動作對使用者而言正在運作。突然波動 這張圖表可能代表你的系統可能無法跟上 。建議定期查看這張圖表 避免出現非預期的行為
  • 使用「錯誤細分」圖表時 解決整合問題。針對每個錯誤 以醒目顯示的成功百分比圖表 。您可以查看標記的錯誤 Google Home platform以及如何進行疑難排解 。

平台錯誤代碼

以下是您可能會在專案記錄檔中看到的常見錯誤代碼: 找出 Google Home platform 偵測到的問題。詳情請參閱 請參閱下表中的疑難排解資訊。

錯誤代碼 說明
BACKEND_FAILURE_URL_ERROR Google 收到您的 課程中也會快速介紹 Memorystore 這是 Google Cloud 的全代管 Redis 服務

在 GCP Logging 中使用 requestId 來檢查您的智慧型 居家服務記錄
BACKEND_FAILURE_URL_TIMEOUT Google 嘗試連線至您的服務時發生逾時問題。

請確認您的服務已連上網路、接受連線, 而非超出容量此外,請確認目標 裝置已開機、已連線並進行同步處理。
BACKEND_FAILURE_URL_UNREACHABLE Google 已收到你的服務傳送的 HTTP 5xx 錯誤代碼。

在 GCP Logging 中使用 requestId 來檢查您的智慧型 居家服務記錄
DEVICE_NOT_FOUND 合作夥伴服務端沒有這部裝置。

這通常表示資料同步處理或競爭失敗 值。
GAL_BAD_3P_RESPONSE Google 無法剖析帳戶連結服務的回應 。

使用 GCP Logging 中的 requestId 檢查錯誤記錄檔 使用帳戶連結
GAL_INTERNAL Google 嘗試擷取 存取權杖

如果您在 GCP Logging 中發現這個錯誤發生率提高,請聯絡 瞭解詳情
GAL_INVALID_ARGUMENT Google 嘗試擷取 存取權杖

如果您在 GCP Logging 中發現這個錯誤發生率提高,請聯絡 瞭解詳情
GAL_NOT_FOUND 使用者的存取權杖和更新權杖儲存在 Google 已失效,且無法再重新整理。使用者必須 請重新連結帳戶,以繼續使用服務。

如果您在 GCP Logging 中發現這個錯誤發生率提高,請聯絡 瞭解詳情
GAL_PERMISSION_DENIED 在未共用權杖時發生 Google 內部錯誤 已獲得授權

如果您在 GCP Logging 中發現這個錯誤發生率提高,請聯絡 瞭解詳情
GAL_REFRESH_IN_PROGRESS 使用者的存取權杖已過期,且同時嘗試存取 重新整理已經進行了。

因此沒有問題,您不需要採取任何行動。
INVALID_AUTH_TOKEN Google 收到你的服務傳來的 HTTP 401 錯誤代碼。

存取權杖並未過期,但您的服務已失效。 在 GCP Logging 中使用 requestId 檢查您的智慧型 居家服務記錄
INVALID_JSON 系統無法剖析或解讀 JSON 回應。

檢查 JSON 回應結構中的無效語法,例如 例如不相符、缺少逗號、無效的字元。
OPEN_AUTH_FAILURE 使用者的存取權杖已過期,且 Google 無法重新整理。 或 Google 收到您的服務傳來的 HTTP 401 錯誤代碼。

如果此程式碼的使用率提高,請檢查 與智慧型住宅意圖或重新整理相關的錯誤率上升 符記要求
PARTNER_RESPONSE_INVALID_ERROR_CODE 回應表示無法辨識的錯誤代碼。

如果要求回應指出錯誤,請務必使用 由我們的 提供 支援的錯誤代碼。
PARTNER_RESPONSE_INVALID_PAYLOAD 無法將回應 payload 欄位剖析為 JSON 物件

檢查要求回應中的酬載欄位是否相符 且正確結構為 JSON 欄位
PARTNER_RESPONSE_INVALID_STATUS 回應不會指出狀態不正確或不正確。

回應意圖執行要求的回應應會顯示狀態 搭配 SUCCESS, OFFLINE, ERROR, EXCEPTIONS。個人中心 請前往 處理錯誤和例外狀況
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES 要求中存在的一或多個意圖的 回應。

請確認 執行作業回應的結構正確,且結果 當中包含該要求的所有意圖。
PARTNER_RESPONSE_MISSING_DEVICE 要求中包含的一或多部裝置未在 回應。

請確認 執行回應的結構正確且所有裝置 請求中的 ID 都會出現在您的回應中。
PARTNER_RESPONSE_MISSING_PAYLOAD 回應未包含 payload 欄位。

請務必在要求回應中納入酬載欄位。個人中心 即可進一步瞭解如何正確建立 執行回應
PARTNER_RESPONSE_NOT_OBJECT 無法將回應剖析為 JSON 物件。

檢查要求回應中的所有欄位,確認是否有非預期字元。 括號或格式不符錯誤。部分萬國碼 (Unicode) 字元 可能不受支援。此外,也請確認回覆正確無誤 轉成 JSON 物件
PROTOCOL_ERROR 無法處理要求。

請在 Google Cloud Logging 中使用 requestId 進行檢查 智慧型居家服務記錄
RESPONSE_TIMEOUT 要求在等候回應時逾時。

傳送回應時,逾時時間為 9 秒,自以下日期起: 要求是否傳送請務必在期限內回覆 讓應用程式從可以最快做出回應的位置 回應使用者要求
RESPONSE_UNAVAILABLE 沒有收到回應,或是回應中未列出狀態。

回應意圖執行要求的回應應有結構 根據 智慧型住宅文件並標示狀態。
TRANSIENT_ERROR 暫時錯誤是指會自行解決的錯誤。

這類錯誤通常是與裝置連線 部分服務。此外,如果無法與伺服器建立新連線 已開啟。

搜尋記錄

熟悉如何使用指標監控整合項目後,請接著 就是使用 Cloud Logging。錯誤記錄顯示 類似 JSON 的項目,其中包含時間、錯誤等實用資訊 程式碼和詳細資料。

Google Cloud 中有多個系統會將記錄傳送至 隨時為專案增減您需要執行的操作 編寫查詢來篩選記錄檔 找出所需的媒體可以是時間範圍資源、記錄嚴重性或自訂項目。

查詢雲端記錄檔

您可以使用查詢按鈕建立自訂篩選器。

建構 Cloud 記錄檔查詢

如要指定「時間範圍」,請按一下時間範圍選項按鈕 ,然後選擇其中一個 只要設定成「自動重新啟動」 和「在主機維護期間」選項即可這項操作會篩選記錄,並顯示 選取的時間範圍

如要指定「資源」,請按一下「資源」下拉式選單。 然後選擇「Google 助理動作專案」。這樣系統就會在 查詢即可顯示來自專案的記錄檔。

您可以使用「嚴重程度」按鈕,依「緊急」、「資訊」、「偵錯」、 和其他嚴重性記錄層級

您也可以使用 Logs Explorer 中的「查詢」欄位 輸入自訂項目這個欄位使用的查詢引擎支援這兩種 字串比對等基本查詢,以及其他進階查詢類型,包括 比較子 (<, >=, !=) 和布林運算子 (AND, OR, NOT)。

例如,下方的自訂項目會傳回錯誤 來自 LIGHT 裝置類型:

resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"

造訪查詢程式庫 查看更多有效查詢記錄檔的範例。

測試修正結果

找出錯誤並套用更新後,建議您執行測試 來徹底修正 Google Home Test Suite。我們還提供使用手冊 如何使用 Test Suite,這將逐步引導您 才能有效變更

學習資源

本文件提供排解智慧型住宅錯誤的步驟 開拍您也可以查看我們的程式碼研究室,進一步瞭解如何偵錯: