云函数 定时任务

这篇使用了云函数 SCF,并在函数中通过 puppeteer 实现定时对页面内容进行采集、数据存储等任务。用户还可以通过函数执行数据爬取、定时签到、网页巡检等复杂的 Web 定时任务。

相关产品
云函数 产品页,含版本规格、价格与购买入口。

一、1. 创建云函数

1. 登录 Serverless 控制台,单击左侧导航栏的函数服务。

2. 在函数服务页面上方选择北京地域,单击新建。

3. 进入新建函数页面,根据页面相关信息提示进行配置。如下:

·创建方式:选择模板创建。

·模糊搜索:输入“定时任务示例函数”,并进行搜索。单击模板中的查看详情,即可在弹窗中查看相关信息,支持下载操作。

4. 单击下一步,进入函数配置页。

二、2. 查看模板

在函数配置页中,单击展开函数代码卡片查看核心代码。这是一个完整可运行的示例,实现了引用 puppeteer 实现对网页内容截屏,并转换为 base64 打印到函数日志的功能:

如需对函数代码进行修改,请参见下文中修改函数模板。

三、修改函数模板

你可以根据自己的定时任务需求对相关模板进行修改。

例如执行以下命令,获取页面 title:

// 获取页面title可供参考const title = await page.title();console.log(title);

增加以下代码,设置点击页面属性。

// 点击页面属性可供参考await page.click('a');

更多 puppeteer 使用指引可参见 puppeteer 文档。配合该工具可以定时访问页面内容,并对页面进行任务操作,例如数据爬取、签到等。

四、3. 配置定时器

在触发器配置中,选择自动创建,则默认创建一个每1小时0分执行一次的定时触发器。如下:

五、4. 测试云函数

1. 单击完成,函数将自动部署。

2. 在函数管理 > 函数代码页面,单击代码编辑器下方的测试,查看函数的执行日志。

3. 测试成功后,可以根据实际情况,在触发管理页签中配置定时触发器,并验收相关 Base64。

六、排障与优化

·函数执行超时:Puppeteer 操作较慢,请在函数配置中将执行超时时间调整为30秒或更长。

·内存不足:浏览器占用内存大,建议内存配置选择256MB或更高。

·如何本地调试:可先在本地 Node.js 环境中运行调试代码,确认 Puppeteer 脚本无误后,再部署到云函数。

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