函数流简介
创建函数流任务
操作步骤
登录FunctionGraph控制台,进入“函数流”页面。
在“函数流”页面,单击“创建标准函数流”或“创建快速函数流”,进入新建函数流页面。
说明:如果通过DWR侧创建的函数流,在console页面是没有编辑和删除权限,如需相关操作请在DWR侧执行。
编排函数流任务,请您根据实际应用进行函数流编排。
查看函数流任务
登录FunctionGraph控制台,进入“函数流”页面。
在函数流页面,支持设置函数流任务卡片显示和列表显示。
在函数流页面,可以查看所有已创建的函数流任务。
单击某一个函数流任务名称,查看任务详情。
函数流执行历史管理
标准函数流执行历史查询
登录FunctionGraph控制台,在左侧导航栏选择“函数流”,进入“函数流”页面。
在“函数流”流程列表页面,单击需要查看执行历史的流程,进入流程详情页面。
切换至“运行记录”页签,查看执行历史运行记录。
左侧为执行历史记录列表,展示最近100次执行记录,支持根据流程执行ID进行查询。
单击左侧的执行记录,中间画布展示流程的执行结果,如果节点执行成功,图标背景为绿色,如果执行失败背景为红色。
画布下方输入输出展示区默认展示流程的输入和输出,点击上方任意节点,展示节点的输入和输出。
说明:对于函数流及函数流各个节点,若输出值中有字段的值为null,则该字段会被直接过滤,不予展示。
最下方日志展示流程从开始到结束所有节点的执行记录。
快速函数流执行日志查询
登录FunctionGraph控制台,在左侧导航栏选择“函数流”,进入“函数流”页面。
在“函数流”列表页面,单击需要查看执行历史的流程,进入函数流“基本信息”页面。
切换至“日志”页签,查看执行历史日志。
可根据请求ID过滤日志,或自定义时间过滤日志,点击请求ID查看执行日志详情。
失败流程重试
登录FunctionGraph控制台,在左侧导航栏选择“函数流”,进入“函数流”页面。
在“函数流”流程列表页面,单击需要查看执行历史的流程,进入流程详情页面。
切换至“运行记录”页签,查看执行历史运行记录。
在失败的记录右侧单击重试图标,重试成功后会生成一条执行记录。
运行中流程终止
登录FunctionGraph控制台,在左侧导航栏选择“函数流”,进入“函数流”页面。
在“函数流”流程列表页面,单击需要查看执行历史的流程,进入流程详情页面。
切换至“运行记录”页签,单击执行中任务的停止图标,终止成功后流程会进入取消状态。
创建函数流触发器
创建定时触发器
登录FunctionGraph控制台,进入“函数流”页面。
在“函数流”流程列表页面,选择需要创建触发器的流程,单击“编辑”,进入编辑页面。
单击“开始”节点,在右侧弹出的属性页面添加触发器,触发器类型选择“定时触发器”。
填写触发器配置信息。
单击“创建”,完成定时触发器创建。
创建APIG(共享版)触发器、创建SMN触发器、创建EG触发器和创建APIG(专享版)触发器流程和上述类似,选择对应的触发器类型即可。
流式文件处理
背景与价值
Serverless Workflow由于自身可编排、有状态、持久化、可视化监控、异常处理、云服务集成等特性,适用于很多应用场景,比如:
复杂度高需要抽象的业务(订单管理,CRM 等)
业务需要自动中断 / 恢复能力,如多个任务之间需要人工干预的场景(人工审批,部署流水线等)
业务需要手动中断 / 恢复(数据备份 / 恢复等)
需要详细监控任务执行状态的场景
流式处理(日志分析,图片 / 视频处理等)
当前大部分 Serverless Workflow 平台更多关注控制流程的编排,忽视了工作流中数据流的编排和高效传输,上述场景创建函数流触发器中,由于数据流相对简单,所以各大平台支持都比较好,但是对于文件转码等存在超大数据流的场景,当前各大平台没有给出很好的解决方案。华为云 FunctionGraph 函数工作流针对该场景,提出了 Serverless Streaming 的流式处理方案,支持毫秒级响应文件处理。
技术原理
华为云 FunctionGraph 函数工作流提出 Serverless Streaming 的流式可编排的文件处理解决方案,步骤与步骤之间通过数据流驱动,更易于用户理解。本章通过图片处理的例子解释该方案的实现机制。
如果需要驱动一个工作流执行,工作流系统需要处理两个部分:
控制流:控制工作流的步骤间流转,以及步骤对应的 Serverless 函数的执行。确保步骤与步骤之间有序执行。
数据流:控制整个工作流的数据流转,通常来说上一个步骤的输出是下一个步骤的输入,比如上述图片处理工作流中,图片压缩的结果是打水印步骤的输入数据。
在普通的服务编排中,由于需要精准控制各个服务的执行顺序,所以控制流是工作流的核心部分。然而在文件处理等流式处理场景中,对控制流的要求并不高,以上述图片处理场景举例,可以对大图片进行分块处理,图片压缩和加水印的任务不需要严格的先后顺序,图片压缩处理完一个分块可以直接流转到下一个步骤,而不需要等待图片压缩把所有分块处理完再开始加水印的任务。
操作步骤
创建一个图片压缩的函数,其中代码在处理返回数据通过 ctx.Write() 函数将结果以流式数据的形式返回:
说明:目前只支持go函数!
FunctionGraph 通过 ctx.Write() 函数提供了流式返回的能力,对开发者来说,只需要将最终结果通过流的方式返回,而不需要关注网络传输的细节。
在 FunctionGraph 的函数流控制台完成工作流编排,举例如下。
调用工作流的同步执行接口,获取最终结果的文件流,数据将以 chunked 流式返回的方式返回到客户端。
函数工作流 FunctionGraph 常见问题
函数工作流 FunctionGraph 常见问题
函数工作流 FunctionGraph 精选推荐
1对1咨询专属顾问
华为云咨询电话:950808或4000-955-988 转1
华为云咨询电话:950808或4000-955-988 转1