设备接入 IoTDA设备接入 IoTDA

文档首页> 设备接入 IoTDA> 最佳实践> 数据转发> 数据转发至FunctionGraph函数工作流
更新时间:2021/10/12 GMT+08:00
分享

数据转发至FunctionGraph函数工作流

场景说明

对于设备上报到平台的数据,使用函数工作流FunctionGraph处理实时流数据。通过函数服务,用户只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,即可跟踪设备的设备属性、消息上报,状态变更,分析、整理和计量数据流。

本示例为将所有设备上报的数据转发至FunctionGraph函数工作流,根据设备的资源空间Id的不同推送到不同的HttpServer地址。

构建函数工程

本例提供了设备属性上报格式转换并转发到第三方应用的源码(包含函数依赖),用户可以下载、学习使用。

创建工程

本例使用Java语言实现设备接入属性数据流式转换功能与推送功能,有关函数开发的过程请参考FunctionGraph的Java函数开发指南,本例不再介绍函数工作流函数实现的代码。

下载样例源码(FunctionGraphFunDemo.zip),解压缩并在Idea中导入工程,如图1所示。

图1 样例代码说明

其中 NA_MOCK_SERVER_ADDRESS 为用户自己的服务器地址。

打包工程

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

图2 工程Artifacts Output 配置参考
图3 Build Artifacts

上传函数至FunctionGraph

在函数工作流工作台创建函数

  1. 登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,进入函数列表界面。
  2. 单击“创建函数”,进入创建函数流程。
  3. 填写函数配置信息,如下图所示。

    模板选择:“使用空模板”。

    函数名称输入:“IoTDM_FUNCTION_HTTPCLIENT_DEMO1”。

    所属应用选择默认的“default”。

    运行时语言选择:“Java 8”。

    函数执行入口:“com.huawei.iot.function.gamma.IoTDataFlowHttpClientTrigger.funTest”。

    代码上传方式:“上传JAR文件”。

    上传程序打包中的代码包:FunctionGraphFun.jar。

    图4 创建函数界面

  4. 单击右侧“创建函数”,完成函数创建。

修改函数配置

函数创建完成后,函数默认内存为128MB,超时时间默认为3s,该样例仅演示功能,如需商用,需要优化修改。

  1. 进入IoTDM_FUNCTION_HTTPCLIENT_DEMO1函数详情页,在“配置”页签,修改配置信息。新增环境变量键值对:“NA_MOCK_SERVER_ADDRESS”:“http://10.70.49.231:8080“,注意该服务器地址非真实服务器地址,请替换成您真实的服务器地址。

    图5 函数配置界面

  2. 单击页面右上角“保存”,保存配置信息。

添加事件源

函数创建以后,可以为函数添加事件源,本例通过配置Http推送测试事件,模拟IoT数据转发过来的设备数据,步骤如下。

  1. 用户进入IoTDM_FUNCTION_HTTPCLIENT_DEMO1函数详情页,选择配置测试事件,如图6所示,弹出“配置测试事件页”。

    图6 配置测试事件

  2. 在“配置测试事件页”,输入配置信息,如图7所示。

    配置测试事件选择:“创建新的测试事件”。

    事件模板选择:“空白模板”。

    事件名称输入:“event-property”。

    图7 配置测试事件

  3. 单击“保存”,完成测试事件配置。

测试数据

处理模拟数据步骤如下。

  1. 用户进入函数详情页,选择“event-property”测试事件,单击“测试”,测试函数,如图8所示。

    图8 配置测试事件

  2. 函数执行成功后,部分函数日志如图9所示,全部的日志信息,可以到“日志”页签查询。

    图9 函数执行结果
    图10 服务端打印

配置设备接入服务

在设备接入服务中设置数据转发规则,实现当设备上报数据时将数据转发至FunctionGraph。

  1. 访问设备接入服务,单击“立即使用”进入设备接入控制台。
  2. 在左侧导航栏选择“规则>数据转发”,单击右上角的“创建规则”。
  3. 参考下表参数说明,填写规则内容。以下参数取值仅为示例,您可参考用户指南创建自己的规则,填写完成后单击“创建规则”

    参数名

    参数说明

    规则名称

    自定义,如iotda-functiongraph。

    规则描述

    自定义,如数据转发至FunctionGraph。

    数据来源

    选择“设备属性”

    触发事件

    自动匹配“设备属性上报”

    资源空间

    选择“所有资源空间”。

  4. 单击“设置转发目标”页签,单击“添加”,设置转发目标。

    参数名

    参数说明

    转发目标

    选择“函数工作流(FunctionGraph)”

    区域

    函数工作流当前仅支持转发至同区域的函数工作流服务。若未授权访问此区域的服务,请根据界面提示,配置云服务访问授权。

    目标函数

    选择在函数工作流创建的函数名称。

  5. 单击“启动规则”,激活配置好的数据转发规则。

验证操作

  • 您可以使用配置设备接入服务时注册的真实设备接入平台,上报任意数据。
  • 您也可以使用模拟器模拟设备上报数据,操作方法请参考在线开发MQTT协议的智慧路灯

期望结果如图11所示,能在服务端日志中可以查看到设备上报的数据,并打印设备不同的资源空间ID。

图11 期望结果
分享:

    相关文档

    相关产品