云函数 SCF + 定时任务备份数据库到 COS

在这篇档示例中,我们用到了云函数 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 管理界面,查看数据库中的分析结果。

注意:你可以根据自身的日志格式编写具体的处理方法,数据库的写方法也可以修改为增量写。

赞 (0)
上一篇 4天前
下一篇 4天前