本文以使用官方示例驱动的LightSensor设备为例,描述将设备的数据存储到本地数据库的方法。
前提条件
背景信息
在生产中常需要结合传感器的历史数据和行业的算法模型,在边缘端进行分析和判断现场状态。实现此操作首先需要把设备上报的数据存储到本地数据库。
边缘函数计算提供本地数据库存储助手,根据ProductKey_DeviceName
格式,将设备上报数据分为不同的表,并存储到本地SQLite数据库,供函数计算中的其他函数(算法逻辑)查询。同时,因为边缘设备的存储空间受限,本地数据库存储助手还提供数据库单表存储上限配置(默认为1万条记录)和数据写满回滚机制。
一、创建本地数据库存储函数
- 下载本地数据库存储函数saveSqliteDB-code.zip。
- 登录函数计算控制台。如尚未开通该服务,请阅读并选中我已阅读并同意,单击立即开通,开通服务。
- (可选)在左侧导航栏单击服务及函数,在服务及函数页面服务列表区域,单击新增服务,创建一个服务。其中,服务名称必须填写,此处设置为EdgeFC,其余参数可根据您的需求设置,也可以不设置。说明
- 若您首次在函数计算中创建服务,请根据配置向导配置参数。
- 若已操作过其他应用场景示例或小程序示例,即已创建EdgeFC服务,则无需重复创建。
- 创建服务成功后,在服务及函数页面的EdgeFC区域,单击新增函数。
- 设置本地数据库存储函数的基础管理配置参数。
参数 描述 所在服务选择已创建的EdgeFC服务。函数名称设置为saveSqliteDB。 运行环境设置函数的运行环境,此示例中选择python3。 函数入口使用默认值index.handler。其余参数的值请根据您的实际需求设置,也可以不设置。更多信息,请参见函数计算。
确认函数信息后,单击完成。
- 创建函数完成后,系统自动跳转到函数详情页面。请在代码执行页签下选择代码包上传,单击选择文件,上传步骤1中下载的saveSqliteDB-code.zip代码包,然后单击保存。代码包上传成功后,您可在在线编辑框中查看源码。
- (可选)配置数据库参数。saveSqliteDB是一个设备数据存储到本地SQLite数据库的参考示例,您可以按需调整和更改示例。目前预留的可调整参数有:
- db_file_path:SQLite文件路径,默认为/linkedge/run/fc-runtime-data/。重要 若重新部署边缘实例,该目录下的数据库文件device-data-sqlite3.db会被删除,您需要重新配置数据库参数。
- db_file_name:SQLite文件名径,默认为device-data-sqlite3.db。
- table_max_entries:数据库单表最大记录条数,默认为1万条。
- table_retain_count:数据库记录到达上限,清理数据库时需要保留的最近记录数,默认为6000条。
- db_file_path:SQLite文件路径,默认为/linkedge/run/fc-runtime-data/。
二、分配函数到边缘实例
- 登录边缘计算控制台。
- 在左侧导航栏单击应用管理。
- 参考函数计算应用内容,使用本文上方步骤一中已创建的函数,创建函数计算类型的边缘应用。
应用信息参数说明如下:
参数 描述 应用名称 设置您应用的名称,例如saveSqliteDB。 应用类型 选择函数计算。 地域 选择您创建的服务所在的地域。 服务 选择EdgeFC服务。 函数 选择saveSqliteDB函数。 授权 选择AliyunIOTAccessingFCRole。 应用版本 设置应用的版本,必须是该应用唯一的版本号,即一个应用不可以设置两个相同的版本号。 函数配置说明如下:容器配置参数说明如下:参数 描述 卷映射 单击新增卷映射,将文件系统和宿主机的环境是完全隔离的。当一个函数需要访问宿主机的文件时,需要将文件映射到运行函数的容器内部。最多可添加10个卷映射。 内存限制设置容器的内存上限。- 当容器内存使用超过限制时,容器会被重启。
- 如果内存限制值过小,可能会导致容器内的应用运行失败。
默认内存为1024 MB,请根据容器内应用大小,上调内存限制。
其余参数无需配置。
- 在左侧导航栏单击边缘实例。
- 在本文“前提条件”中创建的边缘实例右侧,单击查看。
- 在实例详情页面的边缘应用页签,单击分配应用。
- 将已创建的本地数据库存储函数saveSqliteDB分配到边缘实例中,单击关闭。
三、配置消息路由
将设备上报的数据发送给saveSqliteDB函数处理,通过saveSqliteDB函数将设备数据存储到本地数据库。添加消息的详细步骤及各个参数的解释,请参考设置消息路由。
- 在实例详情页面,选择消息路由。
- 单击添加路由,添加LightSensor设备到函数计算的消息路由。按照界面提示,设置如下参数,参数设置完成后单击确定。
参数 描述 路由名称 设置一个消息路由名称。 消息来源 此处选择设备,选择 。消息主题过滤 此处选择全部。 消息目标 此处选择函数计算和EdgeFC/saveSqliteDB函数。
四、部署边缘实例
- 在实例详情页面,单击右上角部署后,在弹出对话框中单击确定,将子设备、函数计算等资源下发到边缘端。
- 实例部署成功后,本地数据库存储函数做为一个后台服务存在,将LightSensor设备上报的数据存储到SQLite数据库中。可以在您的网关设备上查看/linkedge/run/fc-runtime-data/device-data-sqlite3.db文件内容。也可以登录您的网关,执行
tail -f /linkedge/run/logger/fc-base/saveSqliteDB/log.INFO
命令,查看该函数的日志来观察实际函数运行情况。
文档内容是否对您有帮助?