如何對 Amazon Connect 聯絡流程中的 Lambda 函數故障進行疑難排解?

上次更新日期︰2021 年 8 月 24 日

當我的聯絡流程嘗試叫用函數時,新增至 Amazon Connect 執行個體的 AWS Lambda 函數無法叫用。我該如何對此問題進行疑難排解?

解決方案

注意:如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請確保您使用的是最新的 AWS CLI 版本

確認 Lambda 函數以資源為基礎的政策,授予 Amazon Connect 叫用函數的許可

1.    如果您尚未執行此操作,請開啟 Amazon Connect 執行個體的聯絡流程記錄

2.    搜尋聯絡流程日誌中的任何 AccessDeniedException 訊息。當您的函數以 AWS Identity and Access Management (IAM) 以資源為基礎的政策未授予 Amazon Connect 叫用該函數的許可時,您會看到此錯誤。

注意:您還可以手動檢閱函數的以資源為基礎的政策,以查看其是否包含必要的許可。如需詳細資訊,請參閱將資源為基礎的政策用於 AWS Lambda

新增必要的許可

執行 add-permission AWS CLI 命令。包括委託人 connect.amazonaws.comAmazon Connect 執行個體的 Amazon 資源名稱 (ARN)

如需詳細資訊,請參閱《Amazon Connect 管理員指南》中的建立 Lambda 函數。此外,在 Lambda 開發人員指南中授予 AWS 服務的函數存取權

Lambda 函數以資源為基礎的政策範例,授予 Amazon Connect 叫用函數的許可

重要提示︰用函數的 ARN 取代 <Qualified AWS Lambda ARN>。用 Amazon Connect 執行個體的 ARN 取代 <Amazon Connect ARN>

{
    "Version": "2012-10-17",
    "Id": "default",
    "Statement": [
        {
            "Sid": "100",
            "Effect": "Allow",
            "Principal": {
              "Service": "connect.amazonaws.com"
            },
            "Action": "lambda:InvokeFunction",
            "Resource":  "<Qualified AWS Lambda ARN>",
            "Condition": {
              "ArnLike": {
                "AWS:SourceArn": "<Amazon Connect ARN>"
              }
            }
        }
     ]
}

驗證您的 Lambda 函數的回應

遵循 Amazon Connect 管理員指南中驗證函數回應的指示。當您測試從 Lambda 函式傳回的輸出時,請確認下列項目:

  • 輸出是鍵-值組的一般物件。
  • 鍵-值組僅包含英數字元、破折號和底線字元。
  • 該物件並非嵌套或複雜的。
  • 傳回的資料是大小不到 32 KB 的 UTF-8 資料。

確認 Lambda 函數的「逾時」設定足夠高,以允許您的函數叫用

如果您的函數沒有在進行逾時設定中叫用,則聯絡人向下路由叫用 AWS Lambda 函數聯絡區塊的錯誤分支。預設逾時設定為三秒。逾時設定上限為 8 秒。

若要查看叫用函數需要多長時間,檢閱 Amazon CloudWatch 中函數的持續時間指標

若要檢閱和編輯 Lambda 函數上的逾時設定,請參閱聯絡人區塊:叫用 AWS Lambda 函數

注意:若要在聯絡流程中包含 Lambda 函數,而且需要超過八秒的時間才能叫用,請使用 Amazon Connect 的非同步 Lambda 函數

(如果您正在叫用多個 Lambda 函數) 確保函數序列的持續時間小於 20 秒

Amazon Connect 將 Lambda 函數序列的持續時間限制為 20 秒。若要叫用持續超過 20 秒的多個函數,您可以在每個函數之間新增一個 播放提示聯絡區塊。

如需詳細資訊,請參閱 Amazon Connect 管理員指南中的 Amazon Connect 最佳實務Lambda 一節。

識別並解決導致函數失敗的任何其他錯誤


此文章是否有幫助?


您是否需要帳單或技術支援?