我想知道為什麼當我的聯絡流程嘗試在 Amazon Connect 中叫用函數時,我的 AWS Lambda 函數無法叫用。
1. 如果您尚未執行此操作,請開啟 Amazon Connect 執行個體的聯絡流程記錄。
2. 搜尋聯絡流程日誌中的任何 AccessDeniedException 訊息。當您的函數以 AWS Identity and Access Management (IAM) 以資源為基礎的政策未授予 Amazon Connect 叫用該函數的許可時,您會看到此錯誤。
**注意:**您還可以手動檢閱函數的以資源為基礎的政策,以查看其是否包含必要的許可。如需詳細資訊,請參閱將資源型政策用於 AWS Lambda。
新增必要的許可
執行 add-permission AWS CLI 命令。包括主體 connect.amazonaws.com 和 Amazon 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>" } } } ] }
遵循 Amazon Connect 管理員指南中驗證函數回應的指示。當您測試從 Lambda 函數傳回的輸出時,請確認下列項目:
如果您的函數沒有在進行逾時設定中叫用,則聯絡人向下路由叫用 AWS Lambda 函數的錯誤分支。預設逾時設定為三秒。逾時設定上限為 8 秒。
若要查看叫用函數需要多長時間,檢閱 Amazon CloudWatch 中函數的持續時間指標。
若要檢閱和編輯 Lambda 函數上的逾時設定,請參閱聯絡人區塊:叫用 AWS Lambda 函數。
**注意:**若要在聯絡流程中包含 Lambda 函數,而且需要超過八秒的時間才能叫用,請使用 Amazon Connect 的非同步 Lambda 函數。
Amazon Connect 將 Lambda 函數序列的持續時間限制為 20 秒。
如需詳細資訊,請參閱 Amazon Connect 管理員指南中的 Amazon Connect 最佳實務的 Lambda 一節。
遵循如何對 Lambda 函數故障進行疑難排解?中的指示
從 Amazon Connect 叫用 AWS Lambda 函數別名