注册成功后,需要激活云函数 SCF 功能。因为会赠送免费额度,所以正常使用是免费的。
以下两种方式任选一个适合自己需求的即可。
该方式可以实现自动定期部署,保证代码始终的最新版本的。
点击本 GitHub 仓库右上角的 Fork
按钮,复刻本项目到自己的仓库。
手动部署时,可以通过扫描二维码来进行授权。但为了避免人工的重复授权,我们将采用密钥授权的方式,步骤如下:
Ⅰ.登录腾讯云后,点击进入腾讯云密钥管理页面
如果提示创建子账号,可以先拒绝。简单起见,直接使用主账号创建即可。
Ⅱ.点击新建密钥按钮,创建一个密钥。复制并保存 SecretId
和 SecretKey
两项内容,待会儿会用到它们
进入自己 fork 的仓库,点击 Settings-> Secrets-> New repository secret,添加如下 Secrets 作为配置:
这两个配置决定了会部署到哪个腾讯云账户的 SCF 下面。
配置名称 | Name | Value |
---|---|---|
Id | TENCENT_SECRET_ID |
刚才在官网获取到的 SecretId |
Key | TENCENT_SECRET_KEY |
刚才在官网获取到的 SecretKey |
Actions 使用 Serverless Framework
来部署,通过 serverless.yml
来配置函数信息(如函数应用名称、区域、环境变量和触发器等)。
配置步骤如下:
Ⅰ.拷贝或下载 serverless.yml 文件内容到本地文件中,开始编辑内容
其中主要需要改的是最下方的环境变量,这些环境变量在部署后会添加到云函数中(即云函数控制台看到的环境变量集合),它们将作为应用配置传入 bilibili_tool
例如,你需要增加一个环境变量,在最下方添加内容应该是(注意缩进问题):
environment:
variables: # 根据自己的需要修改
Ray_BiliBiliCookies__1: 123 # cookie,必填
Ray_Security__RandomSleepMaxMin: 20
Ray_Security__IntervalSecondsBetweenRequestApi: 20
注意:其中 cookie 是必填项,其他应用配置的也可以通过添加相应的环境变量实现,建议自己添加UA、推送等配置。(更多配置项请参考配置说明文档,仅用于参考环境变量,请只关注表格中的环境变量
一项,并参照上面的方式添加)
如果你不熟悉 yml 或者部署时遇到格式问题,建议花几分钟阅读 YAML 入门教程 常犯错误: Q:我在 Github Secrets 中添加了
NUMBEROFCOINS
,值为 2,为啥投币数量还是 5。 A:所有自定义配置项(环境变量) 不能通过 Github Secrets 添加,只能写在serverless.yml
中。你应该参考上面的例子添加环境变量Ray_DailyTaskConfig__NumberOfCoins
。
其他 serverless.yml
可选配置内容请参考官方说明
Ⅱ.拷贝修改后的内容,将其整个添加到 secrets 中
配置名称 | Name | Value |
---|---|---|
serverless.yml内容 | TENCENT_SERVERLESS_YML |
刚才拷贝的整个文件内容 |
添加如下配置开启自动定时部署:
配置名称 | Name | Value |
---|---|---|
定时自动部署 | IS_AUTO_DEPLOY_TENCENT_SCF |
true |
自动部署只是定时会将自己仓库的代码部署到云函数,想要自动更新,还需要开启仓库的自动同步,详见常见问题文档中的 《我 Fork 之后如何同步原作者的更新内容?》章节
在自己仓库页面,依次点击 Actions ——> auto-deploy-tencent-scf ——> Run workfolw ,手动触发部署工作流。
如果部署成功,那么登录自己的腾讯云函数控制台,就可以看到对应的函数应用了。
请参考下节《测试》进行手动测试函数运行。
该方式比较简单直观,但是代码是上传是固定版本,想更新的话需要再次手动上传。
点击BiliBiliToolPro/release,选择最新版本的 tencent-scf.zip
,下载到本地
Ⅰ.进入云函数控制台,单击左侧导航栏【函数服务】,进入“函数服务”页面。顶部地域选择一个靠近自己地址的,点击新建按钮。
如下图:
Ⅱ.填写基本信息
- 创建方式:选择自定义创建
- 函数名称:bilibili_tool
- 地域:刚才已经选过了
- 运行环境:CustomRuntime
- 函数代码提交方式:本地上传zip包
- 执行方法:index.main_handler
- 函数代码:点击后选择之前本地下载好的zip包
如下图:
Ⅲ.点击展开高级配置,添加配置
- 初始化超时时间:30
- 执行超时时间:86400(会警告超范围,先不用管,下面开启异步之后就好了)
- 环境变量(这里先加 2 个配置就行了,后续可以再添加其他的):
- cookie 配置:key 为
Ray_BiliBiliCookies__1
, value 为之前浏览器抓取到的cookie字符串 - 随机睡眠配置:key 为
Ray_Security__RandomSleepMaxMin
,value 为0
(为了方便测试,所以先关掉,后面测好之后再删掉该配置,或者自己改一个value值) - 指定任务:key 为
Ray_RunTasks
,value 为Test
(供首次部署时测试使用,后续将通过触发器传递功能任务)
- cookie 配置:key 为
如下图:
Ⅳ.继续下滚,找到执行配置模块:
- 异步执行:勾选启用
- 状态追踪:勾选启用
如下图:
Ⅴ.点击完成按钮,创建函数
触发器配置先不用管,可以等测试完成后再添加
参考下节《测试》进行手动测试。
Ⅰ.点击左侧【触发管理】导航,点击“创建触发器”按钮
如下图:
Ⅱ.填写触发器信息
- 触发方式:定时触发
- 定时任务名称:DailyTask
- 触发周期:自定义触发周期
- Cron表达式:自己根据需求指定,10 15 * * * 表示每天15点10分运行,不会的可以做下搜索工作,规则很简单
- 附加信息:是
- 信息内容:
Daily
- 立即启用:勾选启用 填完后点击提交按钮提交,即可完成。如下图:
这里的附加信息将作为runTasks(欲运行的任务编码)配置,通过命令行传入程序。想多个任务共用一个触发器的话,可以使用&号拼接任务编码,填入附加信息,如 Daily&LiveLottery
等到触发器设定的时间,对应的触发器就会去运行应用,自动完成任务。
Ⅰ.成功部署好函数后,会看到如下的函数管理页面,点击顶部函数代码 Tab 页,准备测试。
如下图:
Ⅱ.下拉,找到测试按钮,点击运行测试,页面下方会同步显示日志。如果运行正常,则表示部署已成功。
如下图:
Ⅲ.返回函数配置页面,将之前配置的环境变量Ray_RunTasks
删除,后续函数将自动执行触发器中配置的功能任务
Ⅰ.腾讯云关于CLS日志的免费额度说明如下:
Ⅱ.实测每日运行函数日志花费如图:
Ⅲ.如果需要完全白嫖(即不需要任何费用)的话,可以切至腾讯云日志服务页
Ⅳ.点击侧边栏的日志主题,并找到云函数所在地域,如图所示:
Ⅴ.点击删除,则将删除此日志主题,云函数因为无法定位到日志集,就不会产生额外费用。