如何疑難排解 Amazon Connect 中的聯絡流程錯誤?

2 分的閱讀內容
0

我想調查聯絡流程,以確定聯絡流程中哪個區塊負責追蹤錯誤分支。

簡短描述

如需疑難排解聯絡流程錯誤的指導,請參閱 Amazon Connect 研討會中的聯絡流程錯誤疑難排解

若要調查和疑難排解聯絡流程,您必須具備下列先決條件:

聯絡流程日誌

開啟流程日誌。使用聯絡流程日誌來了解來電經歷聯絡流程不同區塊的過程。此外,請使用聯絡流程日誌來疑難排解故障,並隔離發生錯誤的位置。

聯絡流程匯出

如需匯出流程說明,請參閱如何匯入/匯出流程

使用匯出功能可深入了解聯絡流程:

  • 查看來電經歷流程的過程。
  • 關聯聯絡流程日誌。
  • 在沙盒環境中重現此問題。

Amazon Connect 的 Amazon CloudWatch 指標

如需詳細資訊,請參閱使用 CloudWatch 監控您的執行個體

使用 ContactFlowErrorsContactFlowFatalError 指標監視和疑難排解與聯絡流程相關的事件:

  • ContactFlowFatalError 指標表示因系統錯誤而無法執行流程的次數。例如,Amazon Connect 中斷。
  • ContactFlowErrors 指標表示針對聯絡流程執行錯誤分支的次數。

若要疑難排解聯絡流程錯誤,請查詢 CloudWatch Logs Insights,以確定聯絡流程中哪個區塊負責追蹤錯誤分支。然後,使用該區塊來識別錯誤的根本原因。

解決方案

首先,執行查詢以查看相關的錯誤事件:

1.    開啟 Amazon CloudWatch 主控台

2.    在導覽窗格中,選擇日誌洞察

3.    選取 Amazon Connect 執行個體日誌群組的名稱。格式為 /aws/connect/yourinstancename

4.    在右上角,指定查詢時間範圍

5.    針對特定時間範圍執行下列查詢:

fields @timestamp, @message
| filter @message like 'Results'
| parse @message '"Results":"*","ContactId":"*","ContactFlowId":"*","ContactFlowName":"*","ContactFlowModuleType":"*"' as Results, ContactId, ContactFlowId, ContactFlowName, BlockType
| filter Results like 'rror' or Results like 'ailed' or Results like 'imeout' or Results like 'xception' or Results like 'No prompt provided' or Results like 'Instance has reached concurrent Lambda thread access limit' or Results like 'nsupported' or Results like 'nvalid' or Results like 'not found' or Results like 'execution limit reached'
| sort @timestamp asc
| display Timestamp, Results, ContactId, ContactFlowId, ContactFlowName, BlockType

-或-

針對特定聯絡人 ID 執行下列查詢:

注意:聯絡人 ID 的值替換為您的聯絡人 ID。

fields @timestamp, @message
| sort @timestamp desc
| filter ContactID = "162faf0b-4e68-4a4b-bbde-96c9631f2a95"

然後,若要疑難排解聯絡流程錯誤,請檢閱下列資源:

  • CloudWatch Alarm 組態詳細資料可識別設定警示和警示相關聯絡流程的指標 (ContactFlowErrorsContactFlowFatalError)。如果指標為 ContactFlowFatalError,那麼,這可能是服務問題,因為流程由於系統錯誤而無法執行。如果設定警示的指標為 ContactFlowErrors,則表示聯絡人區塊已從錯誤分支路由。
  • 與受影響聯絡流程相關的日誌,以識別哪個區塊導致了錯誤。如需有關流程區塊的詳細資訊,請參閱流程區塊定義

有時候,聯絡流程區塊會為 CloudWatch 帶來錯誤,但其沒有對應的 CloudWatch 日誌。如需常見聯絡人區塊的表格,請參閱 Amazon Connect 研討會聯絡流程錯誤疑難排解中的附錄

聯絡流程中的 AWS Lambda 錯誤

聯絡流程中最常見的錯誤發生在呼叫 Lambda 函數區塊中。此聯絡流程區塊會呼叫 AWS Lambda,並選擇性地傳回可用來設定聯絡屬性的鍵值組。

若要調查 Lambda 函數錯誤,請在 CloudWatch Logs Insights 中執行下列查詢:

fields @timestamp, @message
| sort @timestamp desc
| filter Results LIKE "Error"

輸出類似於以下內容:

{
    "Results": "The Lambda Function Returned an Error.",
    "ContactId": "alebb22a-93c4-4f90-8f22-b3718c4578E0",
    "ContactFlowId": "contact-flow-id",
    "ContactFlowName": "chat",
    "ContactFlowModuleType": "InvokeExternalResource",
    "Timestamp": "2023-12-20T14:14:13.794Z",
    "Parameters": {
        "FunctionARN": "arn:aws:lambda:us-west-2:1099999:function:Connect-Wallboard-Historical-Metrics",
    },
 "TimeLimit": "3000"
}

受影響的 InvokeExternalResourceContactFlowModule 類型,是指 Lambda 函數、聯絡流程名稱和錯誤。尋找受影響的 Lambda 函數。然後,關聯時間戳記或聯絡人 ID,以取得導致 Lambda 執行日誌中錯誤的確切事件。

存取遭拒例外 以下是 InvokeExternalResource 區塊所導致之聯絡流程日誌中的錯誤範例:

{
    "Results": "Status Code: 403; Error Code: AccessDeniedException; RequestID: 435c21cc-19d8-4847-864e-e32867fe3a70
    "ContactId": "alebb22a-93c4-4f90-8f22-b3718c4578E0",
    "ContactFlowId": " arn:aws:lambda:us-west-2:1099999/contact-flow/65569e69-5c67-4061-8776-fd1d501c4838",
}

“Access Denied” (存取遭拒) 錯誤表示聯絡流程無法叫用 Lambda 函數。如需將函數新增至執行個體的詳細步驟,請參閱將 Lambda 函數新增至 Amazon Connect 執行個體

沒有將聯絡流程的 Amazon Connect 日誌訊息與 Lambda 執行日誌建立關聯的 requestId。如果 Lambda 函數列印叫用事件,請使用 ContactId 將聯絡流程日誌和 Lambda 函數執行日誌建立關聯。如果函數未列印叫用事件,請使用聯絡流程日誌中的時間戳記來篩選 Lambda 函數的執行日誌。

如果叫用 Lambda 函數區塊傳回錯誤,但 Lambda 函數中沒有對應項目,請驗證下列組態:

  • Lambda 承載可能為 NULL。
  • 從函數傳回的輸出必須是鍵與鍵值組配對的平面物件,其值包含英數字元、破折號和底線字元。
  • Lambda 函數回應並非簡單的字串映射,或回應大於 32k。最佳實務是測試從 Lambda 函數傳回的輸出,以確認傳回至 Amazon Connect 時正確使用函數。

可能會因為有多個區塊而發生聯絡流程錯誤。如需區塊和錯誤原因的詳細資訊,請參閱 Amazon Connect 研討會聯絡流程錯誤疑難排解中的附錄


AWS 官方
AWS 官方已更新 1 年前