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

2 分的閱讀內容
0

我想知道為什麼當我的聯絡流程嘗試在 Amazon Connect 中叫用函數時,我的 AWS Lambda 函數無法叫用。

解決方案

確認 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 Resource Name (ARN)

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

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

Lambda 函數以資源為基礎的政策範例,授予 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 秒。

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

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

遵循如何對 Lambda 函數故障進行疑難排解?中的指示


相關資訊

從 Amazon Connect 叫用 AWS Lambda 函數別名

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