跳至內容

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

2 分的閱讀內容
0

我想調查聯絡流程以確定聯絡流程中的哪個區塊追隨錯誤分支。

簡短描述

如需有關疑難排解聯絡流程錯誤的教學課程,請參閱疑難排解 Amazon Connect 中的聯絡流程錯誤研討會

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

Contact 流程日誌

開啟流程日誌。使用聯絡流程日誌來了解呼叫如何穿越聯絡流程的不同區塊。此外,還可以使用聯絡流程日誌來疑難排解故障,並隔離錯誤發生的位置。

聯絡流程匯出

如需匯出流程指示的資訊,請參閱如何匯入/匯出流程

使用匯出進一步了解聯絡流程:

  • 查看呼叫如何穿越流程。
  • 建立聯絡流程日誌的關聯。
  • 在沙盒環境中重現問題。

適用於 Amazon Connect 的 Amazon CloudWatch 指標

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

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

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

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

解決方法

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

1.    開啟 Amazon CloudWatch 主控台

2.    在導覽窗格中,選擇 Log Insights

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 取代 ContactId 的值。

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

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

  • CloudWatch 警報組態詳細資訊,可識別哪個指標 (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",
}

「拒絕存取」錯誤表示聯絡流程無權調用 Lambda 函數。如需將函數新增至執行個體的詳細步驟,請參閱將 Lambda 函數新增至 Amazon Connect 執行個體

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

如果調用 Lambda 函數區塊傳回錯誤,但 Lambda 函數中沒有對應的項目,請確認下列組態:

  • Lambda 承載可能是 NULL。
  • 從函數傳回的輸出必須是鍵和值對的平面物件,其值包括英數、虛線和底線字元。
  • Lambda 函數回應不是簡單的字串對應,或回應大於 32k。最佳做法是測試從 Lambda 函數傳回的輸出,以確認函數在返回 Amazon Connect 時是否被正確使用。

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