调用 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. 打开 Amazon Connect 控制台,网址为https://console.aws.amazon.com/connect/

  2. 在实例页面上的实例别名列中选择您的实例名称。此实例名称显示在您用于访问 Amazon Connect 的 URL 中。

  3. 在导航窗格中的渠道和通信下,选择出站广告系列

  4. 设置自定义操作部分下,使用 Lambda 函数下拉框选择要添加到出站活动实例的函数。

  5. 选择添加 Lambda 函数。确认在 Lambda 函数下添加了函数的 ARN。

步骤 3:从活动中调用 Lambda

  1. 打开或创建旅程流程。

  2. 向网格中添加自定义操作块(在 “集成” 组中)。将分支与数据块连接起来。

  3. 选择自定义操作块的标题以打开其属性页面。

  4. 在 “函数 ARN” 下,从已添加到出站广告系列实例的功能列表中进行选择。

步骤 4:使用 Lambda 函数的响应

直接访问变量

要直接在流程块中访问这些变量,请在自定义操作块之后添加该模块,然后引用这些属性,如以下示例所示:

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

确保为源属性指定的名称与 Lambda ResultData 返回的密钥名称相匹配。