数据转发至函数工作流

构建函数工程

创建工程

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

下载样例源码,解压缩并在Idea中导入工程。代码说明可参考:样例代码说明,其中用户自己的服务器地址通过函数环境变量NA_MOCK_SERVER_ADDRESS传入。

打包工程

使用Idea的Build Artifacts打包Jar,Idea配置及打包。

上传函数至FunctionGraph

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

1.登录函数工作流控制台在左侧导航栏选择“函数 > 函数列表”,进入函数列表界面。

2.单击“创建函数”,进入创建函数流程。

3.填写函数配置信息。

选择:“创建空白函数”。

函数名称输入:“IoTDA_FUNCTION_HTTPCLIENT_DEMO”。

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

4.单击下方“创建函数”,完成函数创建,完成函数创建后将自动跳转到该函数详情页。

5.在函数详情页中选择“代码”>“上传自”>“JAR文件”,上传程序打包文件夹中的代码包:FunctionGraphFun.jar。

6.修改函数运行时参数,选择“设置>常规设置”配置函数执行入口:“com.huawei.iot.function.gamma.IoTDataFlowHttpClientTrigger.funTest”,填写完成后,单击打“保存”,保存配置信息。

7.修改调用函数时传递的环境变量,配置环境变量“NA_MOCK_SERVER_ADDRESS”传入函数要推送的HttpServer地址,注意示例中服务器地址非真实服务器地址,请替换成您真实的http服务器地址,填写完成后,单击“保存”,保存配置信息。

添加事件源

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

1.用户进入“IoTDA_FUNCTION_HTTPCLIENT_DEMO”函数详情页,选择“代码”>“配置测试事件”,弹出“配置测试事件”窗口。

2.在“配置测试事件”窗口中,输入配置信息。

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

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

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

设备属性上报测试参数示例如下:

{
"resource":"device.property",
"event":"report",
"event_time":"string",
"notify_data":{
"header":{
"app_id":"d4922d8a-6c8e-4396-852c-164aefa6638f",
"device_id":"d4922d8a-6c8e-4396-852c-164aefa6638f",
"node_id":"ABC123456789",
"product_id":"ABC123456789",
"gateway_id":"d4922d8a-6c8e-4396-852c-164aefa6638f",
"tags":[{
"tag_key":"testTagName",
"tag_value":"testTagValue"
}]
},
"body":{
"services":[{
"service_id":"string",
"properties":{
},
"event_time":"string"
}]
}
}
}

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


测试数据

处理模拟数据步骤如下:

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

2.函数执行成功后,可在函数详情页右侧通过日志查看函数执行情况。

配置设备接入服务

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

1.访问设备接入服务,单击“立即使用”进入设备接入控制台。

2.在左侧导航栏选择“规则>数据转发”,单击左上角的“创建规则”。

3.参考下表参数说明,填写规则内容。以下参数取值仅为示例,您可参考用户指南创建自己的规则,填写完成后单击“创建规则”。

参数名

参数说明

规则名称

自定义,如“iotda-functiongraph”。

规则描述

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

数据来源

选择“设备属性”。

触发事件

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

资源空间

选择“所有资源空间”。

规则名称

参数说明

自定义,如“iotda-functiongraph”。

规则描述

参数说明

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

数据来源

参数说明

选择“设备属性”。

触发事件

参数说明

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

资源空间

参数说明

选择“所有资源空间”。

4.单击“设置转发目标”页签,单击“添加”,设置转发目标,设置完成后点击“确定”按钮。

参数名

参数说明

转发目标

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

区域

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

目标函数

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

转发目标

参数说明

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

区域

参数说明

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

目标函数

参数说明

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

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

验证操作

您可以使用设备接入服务中注册的真实设备接入平台,上报对应产品物模型中定义的属性参数。

您也可以使用模拟器模拟设备属性上报,操作方法请参考在线开发MQTT协议的智慧路灯

期望结果:能在用户服务端日志中查看到设备上报的数据。

其他应用场景

  • *使用函数压缩图片*

    将图片上传到特定的OBS桶中

    将用户上传的每个图像的尺寸进行压缩

    将处理完后的图像上传到另一个指定的OBS桶

    将图片上传到特定的OBS桶中

    将用户上传的每个图像的尺寸进行压缩

    将处理完后的图像上传到另一个指定的OBS桶

  • *使用函数为图片打水印*

    将图片上传到特定的OBS桶中

    将用户上传的每个图片打水印

    将处理完后的图像上传到另一个指定的OBS桶

    将图片上传到特定的OBS桶中

    将用户上传的每个图片打水印

    将处理完后的图像上传到另一个指定的OBS桶中

  • *使用函数处理DIS数据*

    将图片上传到特定的OBS桶中

    将用户上传的每个图像的尺寸进行压缩

    将处理完后的图像上传到另一个指定的OBS桶

    将图片上传到特定的OBS桶中

    将用户上传的每个图像的尺寸进行压缩

    将处理完后的图像上传到另一个指定的OBS桶

  • *函数+LTS日志实时分析*

    通过LTS云日志服务,快速完成ECS等服务器的任务运行日志采集、加工和转换。

    通过LTS云日志服务,快速完成ECS等服务器的任务运行日志采集、加工和转换。

  • *函数+CTS登录/登出安全分析*

    通过CTS云审计服务,完成对公有云账户对各个云服务资源操作动作和结果的实时记录。

    通过CTS云审计服务,完成对公有云账户对各个云服务资源操作动作和结果的实时记录。

  • *定时开关机华为公有云虚拟机*

    需要特定时间打开或者关闭华为公有云虚拟机时,使用函数服务调用华为云ECS接口,实现定时开关虚拟机。

    需要特定时间打开或者关闭华为公有云虚拟机时,使用函数服务调用华为云ECS接口,实现定时开关虚拟机。

函数工作流 FunctionGraph 教程视频

函数工作流

03:15

函数工作流

02:10

函数工作流

03:10

函数工作流

02:33

函数工作流

02:42

函数工作流

02:18

函数工作流

02:42

函数工作流