調用 Lambda 函數 - Amazon Connect

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

調用 Lambda 函數

步驟 1:建立 Lambda 函式

在行銷活動執行期間,對外行銷活動會使用一批描述檔調用您的 Lambda 函數,並預期回應包含每個描述檔的結果。

請求承載

叫用 Lambda 函數時,它會收到具有下列結構的 JSON 承載:

承載結構

{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "string", "RunId": "string", "ActionId": "string", "CampaignName": "string" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "string", "CustomerData": "string", "IdempotencyToken": "string" } ] } }

欄位描述

InvocationMetadata
  • CampaignContext:包含行銷活動執行的相關中繼資料

  • CampaignId:行銷活動的唯一識別符

  • RunId:此特定行銷活動執行的唯一識別符

  • ActionId:對外行銷活動執行的流程動作識別符

  • CampaignName:行銷活動的人類可讀取名稱

項目
  • CustomerProfiles:要處理的客戶設定檔陣列 (為了提高效率而批次處理)

  • ProfileId:客戶設定檔的唯一識別符

  • CustomerData:客戶設定檔的 JSON 字串

  • IdempotencyToken:此特定調用的唯一權杖,以確保等冪處理

請求承載範例

{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "campaign-12345", "RunId": "run-67890", "ActionId": "activity-abc123", "CampaignName": "Welcome Campaign" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "customer-001", "CustomerData": "{\"firstName\":\"John\",\"lastName\":\"Doe\",\"email\":\"john.doe@example.com\"}", "IdempotencyToken": "token-xyz789" }, { "ProfileId": "customer-002", "CustomerData": "{\"firstName\":\"Jane\",\"lastName\":\"Smith\",\"email\":\"jane.smith@example.com\"}", "IdempotencyToken": "token-abc456" } ] } }

預期的回應承載

您的 Lambda 函數必須傳回具有下列結構的 JSON 回應:

回應結構

{ "Items": { "CustomerProfiles": [ { "Id": "string", "ResultData": {} } ] } }

欄位描述

項目
  • CustomerProfiles:對應至請求中每個客戶設定檔的結果陣列

  • ID:必須符合請求ProfileId中的

  • ResultData:包含處理結果的自訂 JSON 物件 (選用)

回應承載範例

{ "Items": { "CustomerProfiles": [ { "Id": "customer-001", "ResultData": { "recommendedProduct": "Premium Plan", "score": 85, "nextAction": "send_email" } }, { "Id": "customer-002", "ResultData": { "error": "Invalid customer data", "errorCode": "VALIDATION_ERROR" } } ] } }

重要限制

承載大小限制

  • 回應承載大小上限:每個客戶設定檔 32 KB

  • 如果您的 ResultData超過此限制,則調用將標記為無效

回應要求

  • 您必須為請求中ProfileId包含的每個 提供回應

  • 遺失的回應會被視為錯誤

  • 回應中的 Id 欄位必須與請求ProfileId中的 完全相符

錯誤處理

  • 如果您的 Lambda 函數擲回例外狀況,批次中的所有設定檔都會標示為失敗

  • ResultData 基於偵錯目的,在 中包含錯誤詳細資訊

調用類型

  • 調用類型REQUEST_RESPONSE (同步)

  • 您的函數應該會在 30 秒內傳回結果,而不是以非同步方式處理。超過 30 秒的回應會導致動作失敗

步驟 2:授予傳出行銷活動存取 Lambda 函數的權限

  1. https://console.aws.amazon.com/connect/ 開啟 Amazon Connect 主控台。

  2. 在執行個體頁面的執行個體別名資料欄中選擇您的執行個體名稱。此執行個體名稱會出現在您用來存取 Amazon Connect 的 URL 中。

  3. 頻道和通訊下方的導覽窗格中,選擇外撥行銷活動

  4. 設定自訂動作區段下,使用 Lambda 函數下拉式方塊選取要新增至對外行銷活動執行個體的函數。

  5. 選擇新增 Lambda 函數。確認函數的 ARN 已新增至 Lambda 函數

步驟 3:從行銷活動叫用 Lambda

  1. 開啟或建立旅程流程。

  2. 自訂動作區塊 (在整合群組中) 新增至網格。將分支連接到區塊或從區塊連接。

  3. 選擇自訂動作區塊的標題,以開啟其屬性頁面。

  4. 函數 ARN 下,從您已新增至對外行銷活動執行個體的函數清單中選擇。

步驟 4:使用 Lambda 函數回應

直接存取變數

若要直接在流程區塊中存取這些變數,請在自訂動作區塊之後新增 區塊,然後參考下列範例所示的屬性:

RecommendedProduct - $.LambdaInvocation.ResultData.recommendedProduct Score - $.LambdaInvocation.ResultData.score

請確定為來源屬性指定的名稱符合 Lambda ResultData傳回之 中的金鑰名稱。