本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
调用 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 函数的权限
-
打开 Amazon Connect 控制台,网址为https://console.aws.amazon.com/connect/
。 -
在实例页面上的实例别名列中选择您的实例名称。此实例名称显示在您用于访问 Amazon Connect 的 URL 中。
-
在导航窗格中的渠道和通信下,选择出站广告系列。
-
在设置自定义操作部分下,使用 Lambda 函数下拉框选择要添加到出站活动实例的函数。
-
选择添加 Lambda 函数。确认在 Lambda 函数下添加了函数的 ARN。
步骤 3:从活动中调用 Lambda
-
打开或创建旅程流程。
-
向网格中添加自定义操作块(在 “集成” 组中)。将分支与数据块连接起来。
-
选择自定义操作块的标题以打开其属性页面。
-
在 “函数 ARN” 下,从已添加到出站广告系列实例的功能列表中进行选择。
步骤 4:使用 Lambda 函数的响应
直接访问变量
要直接在流程块中访问这些变量,请在自定义操作块之后添加该模块,然后引用这些属性,如以下示例所示:
RecommendedProduct - $.LambdaInvocation.ResultData.recommendedProduct Score - $.LambdaInvocation.ResultData.score
确保为源属性指定的名称与 Lambda ResultData 返回的密钥名称相匹配。