创建函数流任务
本章节主要介绍如何创建函数流任务和编排函数流任务。您可以根据实际业务场景来创建标准函数流或快速函数流。
- 标准模式面向普通的业务场景,支持长时间任务,支持执行历史持久化和查询,只支持异步调用,在函数流运行记录页面查询执行结果。
- 快速模式面向业务执行时长较短,需要极致性能的场景,只支持流程执行时长低于5分钟的场景,不支持执行历史持久化(比如不支持查询执行节点的历史信息),支持同步和异步调用。通过同步执行函数流接口进行函数流的同步执行,接口直接返回函数流执行结果,同时日志页面查看上报到LTS的函数流执行日志。
快速函数流限时免费,欢迎体验!
操作步骤
- 登录FunctionGraph控制台,进入“函数流”页面。
- 在“函数流”页面,单击“创建标准函数流”或“创建快速函数流”,进入新建函数流页面。
如果通过DWR侧创建的函数流,在console页面是没有编辑和删除权限,如需相关操作请在DWR侧执行。
- 编排函数流任务,请您根据实际应用进行函数流编排。
- 在函数流页面,通过拖拽组件进行流程编排。
- 单击编辑框中函数节点进行编辑。配置函数参数,参数说明如表1所示,带*参数为必填项。
表1 函数参数说明 参数
说明
*应用
函数所属应用,用户创建函数时可以进行分组,每个函数应用下面可以创建多个函数,在函数创建时可以指定其归属于某个函数应用。
*函数
FunctionGraph中对应的函数。
说明:- 配置的函数节点返回的数据格式必须是json格式,否则会解析失败。
- 仅对于Go函数支持返回流式数据:在函数详情页的“设置 > 高级设置”下,打开“返回流式数据”开关即可。
*版本
FunctionGraph中函数对应的版本。
*调用方式
函数流执行函数节点时的调用方式,默认为同步调用
说明:- 同步调用不支持长时间函数,最大执行时长为15分钟
- 异步调用支持长时间函数,单函数节点的最大执行时长以函数服务支持的最大执行时长为准
函数参数
流程中以json格式作为body参数在执行时传入函数。
Key:填写参数
Value:填写参数值
DefaultValue:设置默认值,参数未获取到值时,默认获取默认值
操作:编辑或删除设置的参数
输入过滤表达式(JSONPath)
基于上一个流程的json输出参数,可以使用JSONPath格式来选择性的过滤出当前流程的输入参数。
输出过滤表达式(JSONPath)
基于当前流程的json输出参数,可以使用JSONPath格式来选择性的过滤出下一流程的输出参数。
- 单击编辑框中的EG节点进行编辑。配置EG参数,参数说明如表2所示,带*参数为必填项。
配置EG节点前确保已创建好EG自定义事件源和自定义事件通道,参见图3。
表2 EG节点参数说明 参数
说明
*事件通道
事件通道负责接收来自事件源的事件。函数流仅支持编排自定义事件通道:您自行创建的事件通道,用于接收自定义事件源产生的事件。详情请参考事件网格服务关于事件通道的介绍。
*事件源
事件源是事件的来源,函数流仅支持自定义的应用作为事件源,通过自定义的事件通道发布事件到事件网格。
详情请参考事件网格服务关于事件源的介绍
事件内容格式
参数“事件负载内容”的内容格式。
说明:目前只支持application/json格式。
事件负载内容
事件内容。
事件发生主题
事件发生的主题或对象,用以标识哪个具体对象发生了当前事件
输入过滤表达式(JSONPath)
基于上一个流程的json输出参数,可以使用JSONPath格式来选择性的过滤出当前流程的输入参数。
输出过滤表达式(JSONPath)
基于当前流程的json输出参数,可以使用JSONPath格式来选择性的过滤出下一流程的输出参数。
- 若您的函数流任务中配置了流程控制器,请参见表3进行配置,带*参数为必填项。
表3 流程控制器参数说明 类型
参数
说明
回调节点
*回调超时时间(分钟)
回调节点的最长等待时间,超时无回调响应,该节点执行失败。
*回调类型
函数流可供回调的服务节点类型。
说明:目前只支持函数节点。
*应用
函数所属应用,用户创建函数时可以进行分组,每个函数应用下面可以创建多个函数,在函数创建时可以指定其归属于某个函数应用。
*函数
FunctionGraph中对应的函数。
说明:- 配置的函数节点返回的数据格式必须是json格式,否则会解析失败。
- 仅对于Go函数支持返回流式数据:在函数详情页的“设置 > 高级设置”下,打开“返回流式数据”开关即可。
*版本
FunctionGraph中函数对应的版本。
*调用方式
函数流执行函数节点时的调用方式,默认为同步调用
说明:- 同步调用不支持长时间函数,最大执行时长为15分钟
- 异步调用支持长时间函数,单函数节点的最大执行时长以函数服务支持的最大执行时长为准
函数参数
流程中以json格式作为body参数在执行时传入函数。
Key:填写参数
Value:填写参数值
DefaultValue:设置默认值,参数未获取到值时,默认获取默认值
操作:编辑或删除设置的参数
输入过滤表达式
基于上一个流程的json输出参数,可以使用JSONPath格式来选择性的过滤出当前流程的输入参数。
输出过滤表达式
基于当前流程的json输出参数,可以使用JSONPath格式来选择性的过滤出下一流程的输出参数。
子流程
选择子流程
选择已创建的函数流任务。
是否等待子流程完成
默认选择“是”。
输入过滤表达式(JSONPath)
基于上一个流程的json输出参数,可以使用JSONPath格式来选择性的过滤出当前流程的输入参数。
输出过滤表达式(JSONPath)
基于当前流程的json输出参数,可以使用JSONPath格式来选择性的过滤出下一流程的输出参数。
并行分支
*分支执行完成条件
- 所有分支执行完成:2个或2个以上分支时选择该条件
- 一个分支执行完成:只有1个分支时选择该条件
- 指定数目分支执行完成:2个或2个以上分支时其中某个分支可以选择该条件
输入过滤表达式(JSONPath)
基于上一个流程的json输出参数,可以使用JSONPath格式来选择性的过滤出当前流程的输入参数。
输出过滤表达式(JSONPath)
基于当前流程的json输出参数,可以使用JSONPath格式来选择性的过滤出下一流程的输出参数。
指定分支执行完成数目
当“分支执行完成条件”选择指定数目分支执行完成时,支持自定义执行完成的数目。
*结果输出路径
输入并行分支执行结果输出位置,输入值作为key,并行分支执行结果作为value,以json形式输出。若未填写,默认输出路径为:result。
开始节点
加入触发器
用于标识流程的开始,一个流程只能有一个开始节点。如何创建函数流触发器,请参见创建函数流触发器。
异常处理
*是否重试
默认关闭,开启后可以控制函数执行失败后的下一步流程。
- 重试条件(JSONPath):例如: $.status == 500
- 重试间隔(1-30秒):默认重试间隔1S
- 最大重试次数(1-8):默认重试次数3次
*异常分支表达式
JSONPath表达式,表达式结果为true时,异常捕获成功,函数流执行至异常分支。
循环节点
*遍历数组路径(JSONPath)
需要遍历的数组类型变量地址。
*迭代变量名称
每次循环迭代,引用数组中元素的参数名称。
*结果输出路径(JSONPath)
指定全部迭代分支执行结果数组的输出位置。
并发迭代数目
并发运行迭代分支的数目,限制0-100, 0代表并发拉起的数目无限制。
并发迭代时间间隔(秒)
每次迭代间隔的时间。
输入过滤表达式(JSONPath)
基于上一个流程的json输出参数,可以使用JSONPath格式来选择性的过滤出当前流程的输入参数。
输出过滤表达式(JSONPath)
基于当前流程的json输出参数,可以使用JSONPath格式来选择性的过滤出下一流程的输出参数。
时间等待
*延迟时间(秒)
默认60秒。
服务节点
执行模式
定义服务节点中函数的执行顺序。
- 串行模式:服务中的函数节点按照连线顺序依次执行,可以严格保证函数的执行顺序
- 并行模式:服务中的函数节点并行执行,不保证内部函数节点的执行顺序
输入过滤表达式
通过JSONPath表达式对节点的输入信息进行过滤。
输出过滤表达式
通过JSONPath表达式对节点的输出信息进行过滤。
条件分支
*分支类型
- 条件分支
- 默认分支
当一个分支选择条件分支时,必须要有一个分支选择默认分支。
表达式
选择“条件分支”,需要输入JSONPath类型表达式。使用方法请参见表达式运算符说明。
输入过滤表达式
通过JSONPath表达式对节点的输入信息进行过滤。
输出过滤表达式
通过JSONPath表达式对节点的输出信息进行过滤。
结束节点
流程结束的标志
后面不能接任何节点。
- 流程中的所有节点参数配置完成后,单击右上角的“保存”。
函数流中的节点改动后,必须先保存信息,再启动函数流任务。
- 在新建函数流页面,单击左上角函数流名称右边的,进行参数配置,最后单击“确定”。
表4 输入配置信息 参数
说明
*名称
输入函数流名称。
*企业项目
选择企业项目。
合并参数
将上一个节点的输出与下一个节点的输入合并为输入。
描述
输入函数流的简要描述。
图4 编辑函数流
- 单击“启动”,在弹出的启动执行页面,支持输入定义值或者直接启动。此处选择“输入定义值”。
{ "input":3 }
图5 启动执行配置
输入定义值必须是JSON格式的内容。
- 单击“开始执行”,页面右上角提示“启动函数流xxx成功”。
- 单击函数流任务名称,进入函数流任务详情,查看函数流执行结果。
查看函数流任务
- 返回函数工作流控制台,进入“函数流”页面。
- 在函数流页面,支持设置函数流任务卡片显示和列表显示。
图6 设置显示方法
- 卡片显示
图7 卡片显示
- 列表显示
图8 列表显示
- 卡片显示
- 在函数流页面,可以查看所有已创建的函数流任务,您可以执行如表5中的管理操作。
- 单击某一个函数流任务名称,查看任务详情。
- 查看任务基本信息
- 查看任务运行记录
在“运行记录”页签,查看任务的执行历史记录、输入值、输出值、节点日志等信息。
若需要修改任务信息,单击右上角的“函数流设计”,进入函数流编辑页面,更新修改任务。
- 查看函数流监控指标
在“监控”页签,查看任务的调用次数、运行时间、错误次数、运行中信息。监控指标说明如表5 函数流监控指标所示。