腾讯云云函数实战教程 - SCF + COS 实现日志分析写数据库
文档简介:
操作场景:
在本文档示例中,我们用到了云函数 SCF、对象存储 COS、云数据库 MySQL。其中,COS 用来存储需要分析的日志文件,SCF 实现从 COS 下载日志文件并进行统计分析,把分析的结果写入到 MySQL 数据库中。
操作场景
在本文档示例中,我们用到了云函数 SCF、对象存储 COS、云数据库 MySQL。其中,COS 用来存储需要分析的日志文件,SCF 实现从 COS 下载日志文件并进行统计分析,把分析的结果写入到 MySQL 数据库中。
操作步骤
创建 COS Bucket
1. 登录 对象存储控制台,选择左侧导航栏中的存储桶列表。
2. 参考 创建存储桶 创建一个存储桶,主要参数信息设置如下:
名称:命名为 loganalysis。
所属地域:本案例地域选择北京。使用外网连接时 Bucket 可选与 MySQL 云数据库不同的地域。
访问权限:选择“私有读写”。
创建 MySQL 云数据库
1. 由于数据库需要付费购买,您可以选择在目标地域购买云数据库 MySQL 入门机型,本案例地域选择北京。
2. 参考 云数据库MySQL入门概述 创建一个 MySQL 云数据库。
3. 购买完成后,给数据库添加可访问的用户名和密码,并创建新实例,本案例实例名称使用 mason_demo。
创建云函数 SCF
1. 登录 Serverless 控制台,进入函数服务页面。
2. 在“函数服务”页面上方选择北京地域,并单击新建进入新建函数页面。
设置以下参数信息,并单击下一步。如下图所示:
创建方式:选择模板创建。
模糊搜索:输入“日志分析写数据库”,并进行搜索。
单击模板中的查看详情,即可在弹出的“模板详情”窗口中查看相关信息,支持下载操作。


3. 函数名称默认填充,可根据需要自行修改。按照引导配置环境变量、运行角色和私有网络:
在使用本模板函数时,您需要按照提示在函数配置中添加环境变量,填写方式可参考下图:


key
|
value
|
dbhost
|
请参考 访问 MySQL 数据库 获取。本文以外网为例,格式为 bj-cdb-xxxxx.sql.tencentcdb.com:00000。其中冒号后数字为 dbport。
|
dbport
|
|
dbuser
|
已创建的 MySQL 数据库的用户名。
|
dbpwd
|
已设置的 MySQL 账号密码。
|
dbname
|
需进行写入的数据库实例名称,本文以 mason_demo 为例。
|
cosregion
|
Bucket 所在地域的简称。详情可参见 Bucket 地域和访问域名。
|
勾选“启用”,选择“配置并使用SCF模板运行角色”,将会自动创建并选择关联了 COS、CDB 全读写权限的 SCF 模板运行角色。或选择“使用已有角色”,在下拉列表中选择包含上述权限的已有角色。本文以“配置并使用SCF模板运行角色”为例。如下图所示:


注意
您也可以直接在函数代码中替换为账户实际使用的 SecretId 及 SecretKey,可前往 API密钥管理 页面获取。
如果数据库使用的是内网地址,则函数需要启用私有网络,并选择和数据库相同的 VPC 和子网。如下图所示:


配置 COS 触发器
在“触发器配置”中,选择“自定义创建”,并填写相关参数信息。如下图所示:

主要参数信息如下,其余配置项请保持默认:

触发方式:选择 “COS触发”。
COS Bucket:选择 创建 COS Bucket 步骤中已创建的存储桶 loganalysis。
事件类型:选择“全部创建。”
单击完成,即可完成函数和触发器创建。
测试函数功能
1. 下载 测试样例 中的日志文件,并解压出 demo-scf1.txt。
2. 切换至 对象存储控制台,选择创建好的存储桶 loganalysis,单击上传文件。
3. 在弹出的“上传文件”窗口中,选择下载好的 demo-scf1.txt,单击确定上传。
4. 切换至 Serverless 控制台,查看执行结果。
在函数详情页面中选择日志查询页签,可以看到打印出的日志信息。如下图所示:


5. 切换至 MySQL 管理界面,查看数据库中的分析结果。
说明
您可以根据自身的日志格式编写具体的处理方法,数据库的写方法也可以修改为增量写。