使用函数处理DIS数据
引导式阅读
Java
使用函数处理DIS数据
作者
C***
上架时间
2020-12-08 15:01:11

案例概述

本手册基于函数工作流服务实践所编写,用于指导您使用函数工作流服务实现处理DIS数据的功能。

场景介绍

使用数据接入服务(DIS)采集IOT实时数据流,需要将采集到的数据进行处理(比如格式转换),然后存储到表格存储服务(CloudTable Service)中,使用FunctionGraph函数可以实现此功能。

实现流程

1.创建虚拟私有云和集群。

2.构建实现数据处理功能的程序,将程序打包。

3.在函数工作流服务中,创建函数。

4.配置DIS事件,测试函数,处理数据。

准备

案例实现的功能是将DIS数据格式转换,存储到表格存储服务中,所以需要先在表格存储服务创建集群,在创建集群时需要使用虚拟私有云。

创建函数之前,需要创建委托,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到DIS和CloudTable资源。

创建虚拟私有云

1.登录虚拟私有云控制台,单击“创建虚拟私有云”,进入“创建虚拟私有云”界面。

2.填写私有云配置信息。 基本信息中名称输入“vpc-cloudtable”,其他使用系统默认,如图1所示。

子网配置使用系统默认,如图2所示。

图1 基本信息

图1

图2 子网配置

图2

3.确认配置信息无误,单击“立即创建”,创建虚拟私有云。

创建集群

1.登录表格存储服务,在“集群模式”界面,单击“购买集群”,进入“购买集群”界面。

2.填写集群配置信息。

  • 区域使用系统默认。
  • 名称输入“cloudtable-dis”。
  • 虚拟私有云选择创建虚拟私有云中创建的“vpc-cloudtable”。
  • 其他配置保持默认,无需修改。

图3 购买集群

图3

3.确认配置信息无误,单击“立即购买”,创建集群。

图4 创建集群

图4

说明

创建集群需要较长时间,可以从图4中查看进度,请耐心等待。

创建委托

1.登录统一身份认证服务控制台,在左侧导航栏单击“委托”,进入“委托”界面。

2.单击“创建委托”,弹出“创建委托”界面。

3.填写委托信息。

  • 委托名称:输入“DISDemo”。
  • 委托类型:选择“云服务”。
  • 云服务:选择“函数工作流 FunctionGraph”。
  • 持续时间:选择“永久”。
  • 权限选择:在“配置权限界面”界面勾选“Tenant Administrator”,如图5所示。

图5 创建委托

图5

4.单击“确定”,完成权限委托设置。

构建程序

本例提供了DIS数据流格式转换的源码程序包(包含函数依赖),用户可以下载、学习使用。

创建工程

本例使用Java语言实现DIS数据流格式转换功能,有关函数开发的过程请参考Java函数开发指南,本例不再介绍业务功能实现的代码。

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

图1 样例代码说明

图1

在样例代码中,需要修改proID(项目ID)、clusID(集群ID)并保存。

项目ID获取方法:进入“个人中心 > 我的凭证”,如图2所示,在“项目列表”获得项目ID,如图3所示。

图2 我的凭证

图2

图3 项目ID

图3

集群ID获取方法:登录表格存储服务,进入集群管理,选择创建集群中创建的cloudtable-dis集群,进入集群详情页,可以查看集群ID,如图4所示。

图4 集群ID

图4

创建FunctionGraph函数时,需要设置函数执行入口,Java函数执行入口格式为:[包名].[文件名].[函数名],上述源码对应的函数执行入口为:com.huawei.cff.TableTester.MyHandler。

程序打包

使用Eclipse生成Jar包,步骤如下图所示,得到Table Tester.jar文件。

图5 Export

图5

图6 选择类型

图6

图7 发布

图7

将函数依赖打包,方法如下。

下载程序包(fss_examples_dis_cloudtable.zip)文件,解压缩目录如图8所示。使用Table Tester.jar替换DIS Test.jar,替换文件目录后如图9所示。打ZIP包,如图10所示,得到disdemo.zip文件。

图8 文件目录

图8

图9 替换后文件目录

图9

图10 打ZIP包

图10

创建函数

创建函数的时候,必须选择能够访问到DIS和CloudTable资源的委托。

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

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

3.填写函数配置信息,如图11所示。

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

函数名称输入:“DISDemo”。

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

委托名称选择准备中创建的“DISDemo”。

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

函数执行入口:“com.huawei.cff.TableTester.MyHandler”。

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

上传程序打包中的代码包:disdemo.zip。

图11 创建函数

图11

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

修改函数配置

函数创建完成后,函数默认内存为128MB,超时时间默认为3s,资源太少,需要修改。

1.进入DISDemo函数详情页,在“配置”页签,修改配置信息,如图12所示。

内存选择:“512”。

超时时间输入:“15”。

其他配置项不修改。

图12 函数配置

图12

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

添加事件源

函数创建以后,可以为函数添加事件源,本例通过配置DIS测试事件,模拟DIS输入数据,步骤如下。

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

图1 配置测试事件

图1

2.在“配置测试事件页”,输入配置信息,如图2所示。 配置测试事件选择:“创建新的测试事件”。

事件模板选择:“dis-event-template”。

事件名称输入:“dis-test”。

图2 测试事件

图2

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

处理数据

处理模拟数据步骤如下。

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

图1 配置测试事件

图1

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

图2 函数执行结果

图2