使用 AI 排解執行記錄失敗問題
Application Integration 提供 AI 輔助的疑難排解功能,可協助您解決執行失敗的問題。這項功能會使用 Google Gemini 分析執行記錄、判斷根本原因,並生成可做為行動依據的建議。您可以在 Application Integration 的「執行記錄」頁面存取這項功能。
主要優點
使用 Gemini AI 輔助的疑難排解功能,你可以:
- 清楚瞭解複雜的錯誤訊息。AI 會將技術記錄轉換為清楚實用的洞察資訊。
- 取得專為您量身打造的精確解決步驟,解決獨特的整合邏輯和遇到的特定錯誤。
- 找出根本原因和修正步驟,縮短偵錯時間。
事前準備
如要使用 Gemini AI 疑難排解功能,請務必先完成下列事項:
- 為部署整合功能的特定 Google Cloud 區域啟用 AI 功能。如要進一步瞭解如何為新區域或現有區域啟用 AI 功能,請參閱「啟用 AI 功能以進行疑難排解」。
啟用 AI 疑難排解功能
如要使用 Gemini AI 解決執行失敗的問題,請為部署整合的特定 Google Cloud 區域啟用 AI 功能。
為新區域啟用 AI 功能
如要在 Application Integration 的新區域啟用 AI,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Application Integration」(應用程式整合) 頁面。
- 在導覽選單中,按一下「區域」。「區域」頁面隨即顯示,列出專案中佈建的所有區域。
- 按一下「佈建新區域」。
- 展開「進階設定」。
- 按一下「AI 功能」下方的「啟用 AI 功能」切換鈕。
在現有區域啟用 AI
如要為應用程式整合的現有區域啟用 AI 功能,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Application Integration」(應用程式整合) 頁面。
- 在導覽選單中,按一下「區域」。系統會顯示「區域」頁面,列出專案中佈建的所有區域。
- 如要編輯現有區域,請在「動作」欄中,按一下「區域動作」,然後選取「編輯」。
「編輯區域」窗格隨即顯示。
- 展開「進階設定」部分。
- 按一下「AI 功能」下方的「啟用 AI 功能」切換鈕。
使用 AI 解決執行作業失敗的問題
如要使用 Gemini AI 排解執行記錄失敗的問題,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Application Integration」(應用程式整合) 頁面。
- 在導覽選單中,按一下「記錄」。
系統會顯示「執行記錄」頁面,列出預設區域中整合作業產生的執行記錄。
- 在「執行記錄」頁面中,找出顯示錯誤「失敗」狀態的項目。
- 按一下失敗記錄項目旁的 chat_spark 圖示。
- 或者,展開特定資料列,然後點選「說明這個記錄項目」。
系統會開啟「錯誤摘要」頁面,顯示 Gemini 生成的錯誤摘要,包括下列章節:
- 錯誤訊息:顯示技術錯誤說明,並指出程式碼中發生錯誤的位置。
- 根本原因:說明發生錯誤的原因。
- 詳細分析:(展開這個部分) 提供錯誤影響、涉及的特定程式碼區域,以及修正方式等詳細資訊。
- 修正錯誤的步驟:根據已識別的根本原因提供具體補救操作說明。
- 查看錯誤摘要並瞭解問題後,請按一下「關閉」返回「執行記錄」頁面。
根據 AI 建議解決問題
查看錯誤摘要後,請完成下列步驟來解決問題:
- 按照建議操作:按照「錯誤摘要」頁面「修正錯誤的步驟」部分中的建議,實作相關步驟,並對整合邏輯或連接器設定進行所有必要變更。
- 測試並重新發布:完成修改後,請測試並重新發布更新後的整合項目,確認問題已完全解決。
錯誤摘要範例
以下範例說明 AI 生成的執行失敗錯誤摘要:
-
錯誤訊息:
RUNTIME ERROR: Index 0 out of bounds, not within [0, 0) template:16:2-59 function template:17:40-78 function :259:50-62 function :259:55-61 thunk from> template:20:39-40 thunk from> :1613:20-21 thunk from> :32:25-26 thunk from> :32:16-27 function :1613:8-22 function -
根本原因:錯誤
Index 0 out of bounds, not within [0, 0)表示您嘗試存取空陣列的第一個元素 (索引 0)。這個問題發生在程式碼的第 16 行,具體來說,是發生在指令碼的下列部分:getMergedObject(orderId)函式:如果無法在ordersSalesforce中找到相符的訂單,這個函式會傳回空陣列[]。local orders = std.map(...);行:當程式碼嘗試存取getMergedObject(orderId)傳回結果的第一個元素時,會發生index 0 out of bounds錯誤,因為結果是空陣列[]。
-
詳細分析:
getMergedObject(orderId)函式:這個函式會在ordersSalesforce陣列中尋找相符的順序。如果找不到相符項目,系統會傳回空陣列[]。如果ordersSalesforce陣列中沒有orderId,就會發生這種情況。local orders = std.map (...);行:這行會使用std.map函式處理資料。不過,系統會直接嘗試存取getMergedObject(orderId)傳回的陣列第一個元素,而不會檢查陣列是否為空。如果陣列為空白,就會導致index 0 out of bounds錯誤。
-
修正錯誤的步驟:
- 前往 Salesforce 連線中的「驗證」部分。
- 驗證存取權杖和密鑰版本。
- 提供有效的存取權杖和密鑰版本值。
- 測試並重新發布整合,即可套用變更。