检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
通过事件触发器异步启动工作流 操作场景 创建工作流之后,可以通过创建事件触发器来为工作流设置执行条件,指定桶内什么数据在执行某类操作后开始执行工作流。 前提条件 已完成工作流创建。 约束与限制 一个桶支持绑定10个事件触发器。 操作步骤 登录管理控制台。在左侧导航栏上方,单击,选择“存储
数据处理后输出桶:“piccomp-output” 这里创建两个桶是为了防止无限循环。因为处理后的数据如果放在源桶,又跟事件触发器执行的条件匹配,会继续触发工作流执行。详细介绍参见了解更多无限循环原因。 在DWR服务中创建工作流 登录DWR控制台,在“工作流”页面单击“创建工作流”,进入“工作流编排”页面。
graph_name 是 String 工作流名称。 Records 是 Array 工作流触发的事件源事件消息。 inputs 否 Map[String]String 用户可修改参数列表,可以为空。 dynamic_source 否 Map 函数执行必须的参数,可用于传入调用的服务。 表2 函数的环境变量
义函数的输出会再次触发工作流,从而导致用户工作流不停的执行,出现“无限循环”。 图3 工作流配置workflowA 图4 触发器配置triggerA 后缀.mp4可以匹配所有后缀是mp4的对象。 场景2:触发器源桶和函数执行输出目标桶是不同桶的无限循环 案例1:使用内置函数触发“无限循环”
场景介绍 执行MPC服务的预置转码模板“DASH_H.265_4K_低码_1入9出”,将片源转为4K、2K、1080等码率的视频。该模板实际调用的是MPC服务的新建转码任务接口。 约束与限制 媒资转码算子不支持同步返回,如您配置了同步工作流执行媒资转码算子,则会采用异步方式执行,且返回值会格式异常。
时间点截帧。 约束与限制 该抽帧截图算子目前暂不支持中文对象。 方案架构 1. 用户使用对象域名向OBS发送请求 2. DWR收到请求同步执行位于FunctionGraph的视频截图抽帧算子实例,调用MPC服务 3. MPC服务完成抽帧截图,将结果写回租户桶 4. DWR读取租户桶并将结果返回给用户
当前DWR支持同步和异步两种方式启动工作流。 创建事件触发器异步启动 使用API同步启动 使用API异步启动 步骤五:查看运行记录 查看历史运行记录,了解工作流的执行情况。 父主题: 处理数据
方将步骤1中开放的API注册到云市场中即可获取便捷的收费管理,上线指导参见API上线云市场。 开发算子:DWR的算子执行依赖FunctionGraph服务提供执行引擎,算子提供方在发布算子前需按照函数开发规范开发算子。 测试算子:算子提供方在发布前可通过自定义算子方式完成DWR的
策略内容。 具体创建步骤请参见创建自定义策略。本章为您介绍常用的DWR自定义策略样例。 DWR自定义策略样例 示例1:授权用户创建、删除、执行工作流 1 2 3 4 5 6 7 8 9 10 11 12 13 { "Version": "1.1", "Statement":
数据处理后输出桶:“piccomp-output” 这里创建两个桶是为了防止无限循环。因为处理后的数据如果放在源桶,又跟事件触发器执行的条件匹配,会继续触发工作流执行。详细介绍参见了解更多无限循环原因。 OBS对DWR工作流进行授权。以使得DWR可以对OBS内的存储数据,按照您指定的顺序(如解析/转码/审核等)自动化处理。
FunctionGraph函数 算子使用FunctionGraph函数工作流。 1 通过算子对数据进行处理,会使用到函数工作流的资源,比如算子执行时长,函数工作流会根据资源使用情况进行收费,收费详情参见函数工作流计费说明。 抽帧截图算子 使用抽帧截图算子快速构建视频抽帧截图应用。 1
FunctionGraph函数 算子使用FunctionGraph函数工作流。 1 通过算子对数据进行处理,可能会使用到函数工作流的资源,比如算子执行时长,函数工作流会根据资源使用情况进行收费,收费详情参见函数工作流计费说明。 父主题: 抽帧截图(自定义算子)
gionid,其值通过配置环境变量完成。 代码中最后一个return语句为必选代码块,工作流的执行过程中要求算子的返回结果为一个json体(对json中的内容无要求),否则将会发生执行异常。 父主题: 发布下载OBS对象的算子
"graph_name":"test_workflow", //工作流名称 "Records":[ // 处理对象 ], "dynamic_source": {//执行算子的输出结果 "tasks": [ {body}, // 直接返回body字符串
接返回数据: 通过事件触发器启动工作流(异步方式) 在OBS桶上配置事件触发器,指定工作流触发的条件,如桶内什么数据在执行某类操作后开始处理,当事件触发时异步执行满足条件的复杂任务。通常这类复杂任务处理逻辑相同,可以对一类对象进行操作。比较典型的场景是:用户上传视频对象后,可以根据工作流自动完成视频解析或者转码。
算子 算子是DWR中的执行单位,是一个具有输入输出的完成功能模块。算子既有华为云提供的内置官方算子,也有经过华为云审核后的第三方算子。用户可以根据自己的需求挑选算子加入工作流中,从而快速构建特有的数据处理功能。 触发器 每个工作流需要绑定一个触发器用于触发执行工作流,该触发器当前仅
任务超时时间,即任务执行的最长时间。 支持设置0~300秒的超时时间,如果设置为0,则表示超时时间为默认值30秒。 算子提供方 函数模板的提供方。 错误处理 可定义不同类型错误发生时的重试次数、重试间隔,以及重试失败后跳转到的目标任务。 错误类型包括:匹配所有、执行失败、权限不合法、
获取上传桶、对象信息 bucketName = event['Records'][0]['obs']['bucket']['name'] objectKey = urllib.unquote(event['Records'][0]['obs']['object']['key'])
"graph_name":"test_workflow", //工作流名称 "Records":[ // 处理对象 ], "dynamic_source": {//执行算子的输出结果 "tasks": [ {body}, // 直接返回body字符串
操作。 事件源存储桶:触发器监听桶,只有当其中对象内容发生变化时才能触发工作流执行。 上传对象触发工作流执行 完成触发器配置后,工作流已经跟触发器关联,事件源存储桶中监听对象的变化将会触发工作流的执行,这一步我们将上传符合监听事件的对象。 在事件源存储桶中创建一个目录testdir