Serverless:云函数 + 小马BI,将报表极速搬上云

本文作者:sevenyjluo ,腾讯 CSIG 前端开发工程师

很多业务都需要进行运营数据统计,如统计用户数、调用量等等。相较于传统方式,在拥抱云计算的大潮下,如何借助腾讯云上 PAAS 产品无服务云函数 SCF(Serverless CloudFunction),云数据库(MySQL),以及结合报表可视化工具"小马 BI"(https://xiaoma.tencent.com/#/),来快速开发我们的运营报表呢?

效果展示、架构介绍

运营日报的整体架构如下:

Serverless:云函数 + 小马BI,将报表极速搬上云_第1张图片

简单概括下,就是通过云函数的定时触发器,每天定时从源数据库(或API接口等)获取数据并处理,之后存到目标数据库。小马 BI 从目标数据库拉取数据进行展示。so easy!

报表效果如下:

Serverless:云函数 + 小马BI,将报表极速搬上云_第2张图片


第一步、申请注册腾讯云账号

在腾讯云(https://cloud.tencent.com/)上,申请注册一个腾讯云账号。


第二步、购买云 MYSQL(非必需)

在腾讯云数据库控制台购买一个数据库,用于存储我们处理后的数据。

(理论上,目标数据库只要位于小马 BI 能访问到的服务器上就行。如果你不想把数据存在云数据库中,您可跳过此步。)

Serverless:云函数 + 小马BI,将报表极速搬上云_第3张图片 Serverless:云函数 + 小马BI,将报表极速搬上云_第4张图片


第三步、创建云函数

在腾讯云云函数控制台新建云函数。(如若您的MYSQL数据库配置了VPC, 请确保云函数与其位于同一VPC内)。

Serverless:云函数 + 小马BI,将报表极速搬上云_第5张图片 Serverless:云函数 + 小马BI,将报表极速搬上云_第6张图片


第四步、开发

接下来就是具体的代码开发,云函数只是帮我集成了各个语言(如 Node Python 等)的运行时。

代码的开发与正常开发别无二致。

在此不再赘述。可以参考SCF 快速入门。

4.1 存量项目迁移

云函数通过指定的函数入口来进行调用。

所以现有项目,只需要入口执行代码改为函数,并在控制台配置相应的函数入口,即可实现无缝迁移。

Serverless:云函数 + 小马BI,将报表极速搬上云_第7张图片

Serverless:云函数 + 小马BI,将报表极速搬上云_第8张图片


第五步、部署

代码开发完以后,可以通过手动、命令行工具等方式上传。

Serverless:云函数 + 小马BI,将报表极速搬上云_第9张图片

配置定时触发器,每天 8 点执行就可以了。

Serverless:云函数 + 小马BI,将报表极速搬上云_第10张图片

可以通过控制台比较方便地查看日报每天的执行日志:

Serverless:云函数 + 小马BI,将报表极速搬上云_第11张图片


第六步、配置告警(非必需)

日报执行出错,作为开发人员我们很希望第一时间接收到通知,以便排查。

6.1  通过云监控来配置告警

Serverless:云函数 + 小马BI,将报表极速搬上云_第12张图片

Serverless:云函数 + 小马BI,将报表极速搬上云_第13张图片


6.2 通过企业微信机器人

可以通过代码改造,全局捕获错误,将函数执行成功或失败的推送给企业微信机器的回调地址。

Serverless:云函数 + 小马BI,将报表极速搬上云_第14张图片

效果如下:

Serverless:云函数 + 小马BI,将报表极速搬上云_第15张图片


第七步、配置小马 BI

处理后的数据存入云数据库以后,在小马 BI 上配置数据库地址为云上数据库(或您的目标数据库)的地址。

Serverless:云函数 + 小马BI,将报表极速搬上云_第16张图片

之后拖拽组件生成图表就 OK 了。更多配置细节,可参考小马 BI 帮助手册。

Serverless:云函数 + 小马BI,将报表极速搬上云_第17张图片


写在最后

运营报表上云相较于之前,有以下优势:

1、更方便的重跑日报。当天日报出错。需要重跑的话,只需要通过在控制台点击按钮就能完成,无需登机器。

2、更方便的查看日志。原先查日志都需要登录服务器,现在通过控制台界面就能完成。

3、部署更方便。原先想更改文件,需要通过rz/sz的方式把文件传到机器上,现在结合云函数的命令行工具,可以很方便地进行部署。

4、更方便地监控与提醒。日报出错,通过微信机器人、云监控的告警功能来更方便的提醒。

结合小马 BI 的可视化、推送能力,我们可以很方便、快速地完成运营报表开发。

你可能感兴趣的:(Serverless:云函数 + 小马BI,将报表极速搬上云)