案例概述
本手册基于函数工作流服务实践所编写,用于指导您使用函数工作流服务实现处理DIS数据的功能。
场景介绍
使用数据接入服务(DIS)采集IOT实时数据流,需要将采集到的数据进行处理(比如格式转换),然后存储到表格存储服务(CloudTable Service)中,使用FunctionGraph函数可以实现此功能。
实现流程
1.创建虚拟私有云和集群。
2.构建实现数据处理功能的程序,将程序打包。
3.在函数工作流服务中,创建函数。
4.配置DIS事件,测试函数,处理数据。
准备
案例实现的功能是将DIS数据格式转换,存储到表格存储服务中,所以需要先在表格存储服务创建集群,在创建集群时需要使用虚拟私有云。
创建函数之前,需要创建委托,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到DIS和CloudTable资源。
创建虚拟私有云
1.登录虚拟私有云控制台,单击“创建虚拟私有云”,进入“创建虚拟私有云”界面。
2.填写私有云配置信息。
基本信息中名称输入“vpc-cloudtable”,其他使用系统默认,如图1所示。
子网配置使用系统默认,如图2所示。
图1 基本信息

图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]()
案例概述
本手册基于函数工作流服务实践所编写,用于指导您使用函数工作流服务实现处理DIS数据的功能。
场景介绍
使用数据接入服务(DIS)采集IOT实时数据流,需要将采集到的数据进行处理(比如格式转换),然后存储到表格存储服务(CloudTable Service)中,使用FunctionGraph函数可以实现此功能。
实现流程
1.创建虚拟私有云和集群。
2.构建实现数据处理功能的程序,将程序打包。
3.在函数工作流服务中,创建函数。
4.配置DIS事件,测试函数,处理数据。
准备
案例实现的功能是将DIS数据格式转换,存储到表格存储服务中,所以需要先在表格存储服务创建集群,在创建集群时需要使用虚拟私有云。
创建函数之前,需要创建委托,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到DIS和CloudTable资源。
创建虚拟私有云
1.登录虚拟私有云控制台,单击“创建虚拟私有云”,进入“创建虚拟私有云”界面。
2.填写私有云配置信息。 基本信息中名称输入“vpc-cloudtable”,其他使用系统默认,如图1所示。
子网配置使用系统默认,如图2所示。
图1 基本信息
图2 子网配置
3.确认配置信息无误,单击“立即创建”,创建虚拟私有云。
创建集群
1.登录表格存储服务,在“集群模式”界面,单击“购买集群”,进入“购买集群”界面。
2.填写集群配置信息。
图3 购买集群
3.确认配置信息无误,单击“立即购买”,创建集群。
图4 创建集群
说明:
创建集群需要较长时间,可以从图4中查看进度,请耐心等待。
创建委托
1.登录统一身份认证服务控制台,在左侧导航栏单击“委托”,进入“委托”界面。
2.单击“创建委托”,弹出“创建委托”界面。
3.填写委托信息。
图5 创建委托
4.单击“确定”,完成权限委托设置。
构建程序
本例提供了DIS数据流格式转换的源码和程序包(包含函数依赖),用户可以下载、学习使用。
创建工程
本例使用Java语言实现DIS数据流格式转换功能,有关函数开发的过程请参考Java函数开发指南,本例不再介绍业务功能实现的代码。
下载样例源码(fss_examples_dis_cloudtable_src.zip),解压缩,在Eclipse中导入工程,如图1所示。
图1 样例代码说明
在样例代码中,需要修改proID(项目ID)、clusID(集群ID)并保存。
项目ID获取方法:进入“个人中心 > 我的凭证”,如图2所示,在“项目列表”获得项目ID,如图3所示。
图2 我的凭证
图3 项目ID
集群ID获取方法:登录表格存储服务,进入集群管理,选择创建集群中创建的cloudtable-dis集群,进入集群详情页,可以查看集群ID,如图4所示。
图4 集群ID
创建FunctionGraph函数时,需要设置函数执行入口,Java函数执行入口格式为:[包名].[文件名].[函数名],上述源码对应的函数执行入口为:com.huawei.cff.TableTester.MyHandler。
程序打包
使用Eclipse生成Jar包,步骤如下图所示,得到Table Tester.jar文件。
图5 Export
图6 选择类型
图7 发布
将函数依赖打包,方法如下。
下载程序包(fss_examples_dis_cloudtable.zip)文件,解压缩目录如图8所示。使用Table Tester.jar替换DIS Test.jar,替换文件目录后如图9所示。打ZIP包,如图10所示,得到disdemo.zip文件。
图8 文件目录
图9 替换后文件目录
图10 打ZIP包
创建函数
创建函数的时候,必须选择能够访问到DIS和CloudTable资源的委托。
1.登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,进入函数列表界面。
2.单击“创建函数”,进入创建函数流程。
3.填写函数配置信息,如图11所示。
模板选择:“使用空模板”。
函数名称输入:“DISDemo”。
所属应用选择默认的“default”。
委托名称选择准备中创建的“DISDemo”。
运行时语言选择:“Java 8”。
函数执行入口:“com.huawei.cff.TableTester.MyHandler”。
代码上传方式:“上传ZIP文件”。
上传程序打包中的代码包:disdemo.zip。
图11 创建函数
4.单击右侧“创建函数”,完成函数创建
修改函数配置
函数创建完成后,函数默认内存为128MB,超时时间默认为3s,资源太少,需要修改。
1.进入DISDemo函数详情页,在“配置”页签,修改配置信息,如图12所示。
内存选择:“512”。
超时时间输入:“15”。
其他配置项不修改。
图12 函数配置
2.单击页面右上角“保存”,保存配置信息。
添加事件源
函数创建以后,可以为函数添加事件源,本例通过配置DIS测试事件,模拟DIS输入数据,步骤如下。
1.用户进入DISDemo函数详情页,选择配置测试事件,如图1所示,弹出“配置测试事件页”。
图1 配置测试事件
2.在“配置测试事件页”,输入配置信息,如图2所示。 配置测试事件选择:“创建新的测试事件”。
事件模板选择:“dis-event-template”。
事件名称输入:“dis-test”。
图2 测试事件
3.单击“保存”,完成测试事件配置。
处理数据
处理模拟数据步骤如下。
1.用户进入DISDemo函数详情页,选择“dis-test”测试事件,单击“测试”,测试函数,如图1所示。
图1 配置测试事件
2.函数执行成功后,部分函数日志如图2所示,全部的日志信息,可以到“日志”页签查询。
图2 函数执行结果