如何在Contact Flow与模块间传参及获取Lambda调用返回数据
问题1:Contact Flow与Contact Flow模块间的参数传递
输入参数传递
- 在主流程中添加「Invoke Contact Flow Module」组件,选中要调用的目标模块
- 在组件的「Input Parameters」配置项里,把主流程的现有变量(比如
Attributes.CustomerID)映射到模块定义的输入参数名(比如Input_CustomerID) - 模块内部用「Set Contact Attributes」组件,选择「External」来源,以输入参数名为键,就能读取主流程传入的值,示例配置:
键:Input_CustomerID 值:$External.Input_CustomerID
输出参数传递
- 在模块内部,使用「Set Contact Attributes」组件,选择「External」来源,定义输出参数的键名(比如
Output_UserInfo),赋值需要返回的数据 - 主流程调用模块后,直接通过
Attributes.Output_UserInfo就能拿到模块返回的输出参数
问题2:Contact Flow模块调用Lambda并返回数据到主流程
完全可以实现,模块能向主流程返回Lambda的数据,具体步骤如下:
- 模块内配置Lambda调用
- 在模块中添加「Invoke AWS Lambda」组件,选中目标Lambda函数
- 配置Lambda的输入参数,比如传入模块接收到的客户ID:
{ "customer_id": "$External.Input_CustomerID" }
- Lambda代码示例
import json def lambda_handler(event, context): # 模拟从数据库获取用户数据 customer_id = event['customer_id'] user_data = { "name": "Alice Smith", "membership_level": "Premium", "last_purchase_date": "2024-05-15" } # 返回结构化数据 return { 'statusCode': 200, 'body': json.dumps(user_data) } - 模块内处理Lambda返回值并传递给主流程
- 在模块中添加「Set Contact Attributes」组件,选择「Lambda」来源
- 将Lambda返回的字段映射到外部属性,比如:
键:Module_Lambda_User_Data 值:$Lambda.body
$Lambda.body.name这种格式) - 主流程获取数据
主流程调用该模块后,直接通过Attributes.Module_Lambda_User_Data就能获取Lambda返回的完整数据,也可以通过Attributes.Module_Lambda_User_Data.name提取单个字段
内容的提问来源于stack exchange,提问作者user3418006
相关产品推荐
相关产品推荐

