检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
操作流程 图1 操作流程 父主题: 抽帧截图(官方算子)
抽帧截图(自定义算子) 方案概述 资源和成本 操作流程 实施步骤
资源和成本 表1 资源和成本规划 资源 资源说明 数量 每月费用 OBS 算子请求OBS API。 1 通过算子对数据进行处理,都会涉及到对OBS API的调用,每调用一次API都计算一次请求次数。对象存储服务OBS会根据调用API的请求次数进行费用收取,收取详情参见OBS请求费用说明。
“无限循环”触发工作流如何处理? 由于DWR只能按触发器前缀、后缀、事件源类型等条件触发工作流,所以可能存在出现“无限循环”的场景。如果出现“无限循环”,只能先删除桶的事件触发器。主要有以下两个场景: 场景1:触发器源桶和函数执行输出目标桶是同一个桶的无限循环 案例1:使用DWR内置函数触发“无限循环”
抽帧截图(自定义算子) 视频解析 媒资转码 常见问题 了解更多常见问题、案例和解决方案 热门案例 触发器配置不当导致“无限循环”触发工作流如何处理? 如何测试算子? 一个事件触发器可以设置多个前缀或者后缀吗? 技术专题 技术、观点、课程专题呈现 云计算小课专题 云计算知识哪家强,云上小课来开讲!
graph_name 是 String 工作流名称。 继承函数输入参数的graph_name。 Records 是 Array 工作流触发的事件源事件消息。 如果没有变化,则继承函数输入参数的records。 inputs 否 Map[String]String 用户可修改参数列表。 如果没有新增,则继承函数输入参数的inputs。
案例概述 场景介绍 DWR平台除了提供面向使用者的平台功能,同时也支持合作伙伴将自有功能包装成算子发布到DWR平台上,帮助伙伴快速搭建用户的数据处理工厂。 算子发布流程 图1 算子发布流程图 部署服务:算子提供方需要将自身服务部署在华为云,同时对外提供API,方便用户进行调用。
算子是DWR中的执行单位,是一个具有输入输出的完成功能模块。算子既有华为云提供的内置官方算子,也有经过华为云审核后的第三方算子。用户可以根据自己的需求挑选算子加入工作流中,从而快速构建特有的数据处理功能。 触发器 每个工作流需要绑定一个触发器用于触发执行工作流,该触发器当前仅支持作用于OBS桶上,用户可在触发器中定义工作流的触发方式。
当算子被华为云用户使用之后,算子发布者将会获得相应的收益,详情参见计费说明。 算子从API上线、开发、到发布的整个流程如图1所示,本节主要介绍如何使用DWR发布已开发好的算子到算子市场。 算子开发完成后,您可以参考抽帧截图(自定义算子)来验证算子。 图1 算子发布流程 约束与限制 当前发布算子功能仅支持IAM主账号。
ca68", //工作流实例名称 "graph_name":"test_workflow", //工作流名称 "Records":[ // 处理对象 ], "dynamic_source": {//执行算子的输出结果 "tasks":
bucketName = event['Records'][0]['obs']['bucket']['name'] objectKey = urllib.parse.unquote(event['Records'][0]['obs']['object']['key'])
测试算子功能 当算子功能代码开发完毕后,可以在DWR工作流中使用或进行上线前的测试。本节主要介绍如何使用DWR的自定义工作流来测试算子的功能。 测试算子功能 登录DWR控制台, 在工作流页面点击“创建工作流”进入工作流编排界面。 将左侧“自定义”算子拖拽至编排区域。 鼠标单击各流
获取上传桶、对象信息 bucketName = event['Records'][0]['obs']['bucket']['name'] objectKey = urllib.unquote(event['Records'][0]['obs']['object']['key'])
数据处理介绍 DWR如何实现数据处理 DWR提供的近数据处理能力,可以对OBS内存储的数据,按照用户编排的工作流进行自动化处理(如解析、转码、截图等)。 DWR基于函数工作流FunctionGraph的函数能力,将复杂的业务处理逻辑编排为工作流,通过事件触发器或API驱动,自动化
自动新建。输出路径为空表示存放在桶的根目录。 tar 是否压缩抽帧图片生成tar包。 sync 是否同步处理,同步处理是指不下载全部文件,快速定位到截图位置进行截图。 type 采样类型,可选择如下类型: 根据视频时长的百分比间隔采样 根据时间间隔采样截图 指定时间点截图 output_filename