检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
案例概述 场景介绍 该案例演示客户如何使用FunctionGraph 与IoTDA 服务组合,处理物联网设备上报以及设备状态变动的相关数据。物联网设备在IoTDA 平台进行管理,设备产生的数据可以从IoTDA直接流转触发FunctionGraph 的函数运行。用户可以根据需要编写函数处理这些数据。
更新指定依赖包 功能介绍 更新指定依赖包 调用方法 请参见如何调用API。 URI PUT /v2/{project_id}/fgs/dependencies/{depend_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户项目
修订记录 表1 修订记录 发布日期 修订记录 2022-11-21 新增接口内容如下: 分页查询指定函数流记录 2022-11-14 新增接口内容如下: 创建依赖包版本 获取依赖包版本列表 获取依赖包版本详情 删除依赖包版本 获取按指定指标排序的函数列表 获取函数预留实例配置列表
配置函数流的子流程控制器组件 函数工作流服务可以把一些“函数流”作为“子流程”组合成一个新的函数流,这样可以抽取出一些函数流作为公共流进行使用,减少函数流的重复编排。 设计一个函数流: 当输入值input<2时,执行串行模式的子流程(输入值先加2再平方)。 当输入值input=2,走默认分支,输出原值。
配置函数流的异常处理控制器组件 异常处理控制器组件用于控制函数执行失败后的下一步流程,当函数流里面的函数执行异常时,可以通过“异常处理”来处理执行失败的函数并可添加重试。函数执行失败可分为多种情况:函数执行异常;函数内部业务失败并在返回内容中添加了错误码,例如status,200代表成功,500和404等代表失败。
配置函数流的时间等待控制器组件 时间等待控制器组件用于控制当前子流程或函数在指定时间延迟后再调用下一个子流程或函数。 约束与限制 如果通过DWR侧创建的函数流,在console页面是没有编辑和删除权限,如需相关操作请在DWR侧执行。 配置的函数节点返回的数据格式必须是json格式,否则会解析失败。
获取指定依赖包(待废弃) 功能介绍 获取指定依赖包 调用方法 请参见如何调用API。 URI GET /v2/{project_id}/fgs/dependencies/{depend_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String
查询应用程序详情 功能介绍 查询应用程序详情(该功能目前仅支持华东-上海一、华北-北京四) 调用方法 请参见如何调用API。 URI GET /v2/{project_id}/fgs/applications/{id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id
配置函数流的并行分支控制器组件 函数流的并行分支控制器组件支持函数流同时执行多个分支任务,并可根据分支执行结束后控制下一步流程。 约束与限制 如果通过DWR侧创建的函数流,在console页面是没有编辑和删除权限,如需相关操作请在DWR侧执行。 配置的函数节点返回的数据格式必须是json格式,否则会解析失败。
在线调试函数 完成函数的各项配置后,在函数详情页中的“代码”页签下,可以自定义设置测试事件,验证函数能否成功执行。 有关函数在线调试测试事件的操作,您可以参见使用空白模板创建函数指导视频中调试测试事件的介绍。 约束与限制 每个函数最多可配置10个测试事件。 创建测试事件 事件数据
开发事件函数 函数定义 建议使用Node.js 12.13版本。 Node.js 6.10函数定义 Node.js6.10 函数的接口定义如下所示。 export.handler = function(event, context, callback) 入口函数名(handler):入口函数名称,
构建程序 本例提供了为图片打水印功能的程序包,使用空白模板创建函数,用户可以下载(watermark.zip)学习使用。 创建程序包 本例使用Python语言实现为图片打水印的功能,有关函数开发的过程请参考Python函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。
为函数配置依赖包 本章节介绍使用FunctionGraph控制台,对函数依赖包进行创建、配置和删除操作。 约束与限制 一个函数最多可添加20个依赖包。 函数正在使用的依赖包无法被删除。 在各个依赖包与代码包之间,应避免出现同名的目录或文件。例如依赖包depends.zip中包含index
使用FunctionGraph函数流对图片进行压缩和打水印 本章节主要介绍如何使用函数流实现流式大文件处理。您可以根据实际业务场景来创建快速函数流实现。 背景与价值 Serverless Workflow由于自身可编排、有状态、持久化、可视化监控、异常处理、云服务集成等特性,适用于很多应用场景,比如:
构建程序 创建API分组 创建函数及添加事件源之前,需要先创建一个API分组,API分组是API的管理单元,用来存放API。 您需要拥有一个APIG实例后才能开启API网关服务相关功能,具体请参见购买实例。 登录APIG控制台,在左侧导航栏选择“API管理 > API分组”,单击“创建API分组”。
约束与限制 支持区域 函数工作流服务支持区域详情请参见地区和终端节点。 函数配置 表1 函数配置约束与限制 限制项 说明 单个函数下最大允许创建的版本个数 20(含latest版本) 单个函数下最大允许创建的别名个数 10 每个版本仅可以创建1个别名。 单个函数版本下最大允许创建的触发器总数
获取指定函数的版本列表 功能介绍 获取指定函数的版本列表。 调用方法 请参见如何调用API。 URI GET /v2/{project_id}/fgs/functions/{function_urn}/versions 表1 路径参数 参数 是否必选 参数类型 描述 project_id
配置函数流的循环控制器组件 使用“循环”控制器组件来对输入数组中每个元素进行循环处理,每次循环会执行一次循环内部的子流程或函数。 设计一个函数流,输入一个整数数组,通过循环对整数数组的每一个元素加2。 约束与限制 如果通过DWR侧创建的函数流,在console页面是没有编辑和删除权限,如需相关操作请在DWR侧执行。
配置函数流的条件分支控制器组件 用于根据条件判断是否执行下一分支。 约束与限制 如果通过DWR侧创建的函数流,在console页面是没有编辑和删除权限,如需相关操作请在DWR侧执行。 配置的函数节点返回的数据格式必须是json格式,否则会解析失败。 仅对于Go函数支持返回流式数据:在函数详情页的“设置
配置函数的环境变量 FunctionGraph支持为函数设置环境变量,可以在不修改代码的情况下,将动态参数传递到函数,调整函数的执行行为。 环境变量在函数中适用于以下场景: 区分多环境:相同的函数逻辑,可根据部署环境的不同,配置不同的环境变量以区分。例如,通过环境变量给测试和开发环境配置不同的数据库。