- 最新动态
- 功能总览
- 服务公告
- 计费说明
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
-
API参考
- 应用侧API参考
- 设备侧MQTT/MQTTS接口参考
- 设备侧HTTPS接口参考
- 设备侧LwM2M接口参考
- 安全隧道WebSocket接口参考
- 模组AT指令参考
- 修订记录
- SDK参考
- 场景代码示例
-
常见问题
- 热门问题
-
方案咨询
- 连接IoT平台的业务场景有哪些?
- 设备管理服务和设备接入服务合一后的差异点是什么?
- IAM子用户或子项目是否可以开通物联网平台服务?
- 物联网平台支持在华为云的哪些区域开通?
- 华为是否提供模组/硬件终端/应用软件等?
- IAM用户访问API提示没有权限?(是否区分版本?)
- 创建规则或者设置资源文件存储时候提示赋予Security Administrator权限
- 物联网平台设置默认资源空间的规则是什么?
- 设备接入服务如何获取设备数据?
- 物联网平台的资源空间和设备可以无限创建吗?
- 物联网平台支持批量注册设备吗?
- 物联网平台对应用侧和设备侧在开发或使用时有限制吗?
- 物联网平台支持的DTLS加密算法有哪些?
- 物联网平台支持二进制大小端模式切换吗?
- 什么是NB-IoT?
- 物联网平台支持的硬件架构和使用的相关组件有哪些?
- 如何获取平台接入地址?
- 设备集成相关问题
- 设备侧SDK相关问题
- 设备发放相关问题
- LWM2M/CoAP接入相关问题
- MQTT接入相关问题
- 泛协议接入相关问题
- 物模型相关问题
- 消息通信相关问题
- 订阅推送相关问题
- 编解码插件相关问题
- OTA升级相关问题
- 应用集成相关问题
- 实例管理相关问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
数据转发至FunctionGraph函数工作流
场景说明
对于设备上报到平台的数据,使用函数工作流FunctionGraph处理实时流数据。通过函数服务,用户只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,即可跟踪设备的设备属性、消息上报,状态变更,分析、整理和计量数据流。
本示例为将所有设备上报的属性转发至FunctionGraph函数工作流,根据设备资源空间Id的不同推送到用户Http服务器的不同路径,请您提供自行部署的Http服务器。本示例通过设备接入服务的数据转发能力来驱动事件函数,不需要额外配置触发器。
构建函数工程
本例提供了设备属性上报格式转换并转发到第三方应用的源码(包含函数依赖),用户可以下载学习使用。
创建工程
本例使用Java语言实现设备接入属性数据流式转换功能与推送功能,有关函数开发的过程请参考FunctionGraph的Java函数开发指南,本例不再介绍函数工作流函数实现的代码。
下载样例源码,解压缩并在Idea中导入工程。代码说明可参考:样例代码说明,其中用户自己的服务器地址通过函数环境变量NA_MOCK_SERVER_ADDRESS传入。

打包工程
使用Idea的Build Artifacts打包Jar,Idea配置及打包如下图所示。


上传函数至FunctionGraph
在函数工作流工作台创建函数
- 登录函数工作流控制台在左侧导航栏选择“函数 > 函数列表”,进入函数列表界面。
- 单击“创建函数”,进入创建函数流程。
- 填写函数配置信息,如下图所示。
选择:“创建空白函数”。
函数名称输入:“IoTDA_FUNCTION_HTTPCLIENT_DEMO”。
运行时语言选择:“Java 8”。
图4 创建函数界面 - 单击下方“创建函数”,完成函数创建,完成函数创建后将自动跳转到该函数详情页。
- 在函数详情页中选择“代码”>“上传自”>“JAR文件”,上传程序打包文件夹中的代码包:FunctionGraphFun.jar。
图5 上传代码界面
- 修改函数运行时参数,选择“设置>常规设置”配置函数执行入口:“com.huawei.iot.function.gamma.IoTDataFlowHttpClientTrigger.funTest”,填写完成后,单击打“保存”,保存配置信息。
图6 设置函数执行入口
须知:
函数默认内存为512MB,超时时间默认为15s,该样例仅演示功能,如需商用,请结合实际使用场景进行参数优化。
- 修改调用函数时传递的环境变量,配置环境变量“NA_MOCK_SERVER_ADDRESS”传入函数要推送的HttpServer地址,注意示例中服务器地址非真实服务器地址,请替换成您真实的http服务器地址,填写完成后,单击“保存”,保存配置信息。
图7 配置函数调用环境变量
添加事件源
函数创建以后,可以为函数添加事件源,本例通过配置Http推送测试事件,模拟IoT数据转发过来的设备数据,步骤如下。
- 用户进入“IoTDA_FUNCTION_HTTPCLIENT_DEMO”函数详情页,选择“代码”>“配置测试事件”,弹出“配置测试事件”窗口。
图8 配置测试事件
- 在“配置测试事件”窗口中,输入配置信息。
配置测试事件选择:“创建新的测试事件”。
事件模板选择:“空白模板”。
事件名称输入:“event-property”。
设备属性上报测试参数示例如下:
{ "resource":"device.property", "event":"report", "event_time":"string", "notify_data":{ "header":{ "app_id":"********", "device_id":"********", "node_id":"ABC123456789", "product_id":"ABC123456789", "gateway_id":"********", "tags":[{ "tag_key":"testTagName", "tag_value":"testTagValue" }] }, "body":{ "services":[{ "service_id":"string", "properties":{ }, "event_time":"string" }] } } }
图9 配置测试事件 - 单击“保存”,完成测试事件配置。
测试数据
处理模拟数据步骤如下。
- 用户进入函数详情页,选择“event-property”测试事件,单击“测试”,测试函数。
图10 配置测试事件
- 函数执行成功后,可在函数详情页右侧通过日志查看函数执行情况。
图11 函数执行结果
配置设备接入服务
在设备接入服务中设置数据转发规则,实现当设备上报数据时将数据转发至FunctionGraph。
- 访问设备接入服务,单击“立即使用”进入设备接入控制台。
- 在左侧导航栏选择“规则>数据转发”,单击左上角的“创建规则”。
- 参考下表参数说明,填写规则内容。以下参数取值仅为示例,您可参考数据转发简介创建自己的规则,填写完成后单击“创建规则”。
参数名
参数说明
规则名称
自定义,如“iotda-functiongraph”。
规则描述
自定义,如“数据转发至FunctionGraph”。
数据来源
选择“设备属性”。
触发事件
自动匹配“设备属性上报”。
资源空间
选择“所有资源空间”。
图12 新建属性上报流转规则-数据转发至FunctionGraph - 单击“设置转发目标”页签,单击“添加”,设置转发目标,设置完成后单击“确定”按钮。
参数名
参数说明
转发目标
选择“函数工作流(FunctionGraph)”
区域
函数工作流当前仅支持转发至同区域的函数工作流服务。若未授权访问此区域的服务,请根据界面提示,配置云服务访问授权。
目标函数
选择在函数工作流创建的函数名称。
图13 新建转发目标-转发至FunctionGraph - 单击“启动规则”,激活配置好的数据转发规则。
验证操作
- 您可以使用设备接入服务中注册的真实设备接入平台,上报对应产品物模型中定义的属性参数。
- 您也可以使用模拟器模拟设备属性上报,操作方法请参考在线开发MQTT协议的智慧路灯。
期望结果:能在用户服务端日志中查看到设备上报的数据。
