之前写了一个程序,可以帮助上报健康数据到智慧山水。

但是一直是需要自己电脑或者服务器的支持,自己的电脑需要长期开机,或者花钱购买云服务器。

现在终于可以摆脱束缚,仅需一次配置,配置完成后无需电脑或服务器,每日云端自动提交,零成本、无电费。

以下方式可实现定时提交程序。

云端自动提交

使用腾讯云函数

腾讯云函数介绍

什么是腾讯云函数?

官方介绍:

腾讯云云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码, 是实时文件处理和数据处理等场景下理想的计算平台。 您只需使用 SCF 平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。

简单来说就是可以自动定时运行代码的服务器,你无需担心服务器是否正常、是否被攻击,只需要关心代码即可。

免费额度

资源类型 每月免费额度
资源使用量 40 万 GBs
调用次数 100 万次

已经够使用了。

使用方式

准备代码

下载运行环境依赖

由于代码引入了python的lxml库,但是腾讯云函数提供的环境中又没有此依赖,所以需要手动上传。

依赖下载地址:https://wwa.lanzous.com/ivuSHeukg2h

下载到一个压缩包。

打开之后结构如图所示:

打开之后结构如图所示

将程序运行所必须的文件放入此压缩包

程序仓库:https://github.com/imldy/health-data-post(里面有代码及使用说明)

配置文件使用说明:https://github.com/imldy/health-data-post/blob/master/students_data_explain.md

必须的文件列表:

  • HealthDataPost.py(代码)
  • students_data.json(配置文件)

放入此压缩包

我用的解压缩软件是Bandizip,可以直接拖拽文件到压缩包。

拖拽文件到压缩包

点击“确定”

如果你的软件不支持拖拽文件到压缩包,你可以先解压依赖文件,然后和软件运行所必须的文件压缩到同一个压缩包内,是.zip格式即可。

如图所示,是准备好的压缩文件,里面包含依赖,也包含程序运行所必须的文件。

准备好的

注册、登录腾讯云

链接:https://cloud.tencent.com/product/scf

打开上方链接,点击右上角登录,可以使用邮箱、QQ等,直接登录即可,很简单,不再赘述。

使用腾讯云函数

立即使用

点击页面左边的“立即使用”进入控制台。

可以看到你已经拥有的函数的情况,初次使用为空正常。

概览

点击左边的“函数服务”,可以看到已有的函数服务。

函数服务

地区使用大陆地区(除非你的代码需要国际互联网的支持,但是咱们的提交健康数据使用国内网络即可)。

点击“新建”

新建函数
基本信息

新建函数页面

函数名称:自己随便输入,我这里使用的是HealthDataPost

运行环境:选择“Python3.6”。

创建方式:选择“空白函数”,方便我们后续添加自己的代码

单击“下一步”

函数配置

函数配置

描述:填写方便自己标识各个函数的文字,例如智慧山水平台健康自动数据提交

执行方法:填写HealthDataPost.main,这里填写的是程序的入口,即程序第一个要执行的函数。.前面是代码文件名字,后边是方法名(这个方法名必须接收两个参数,我这里已经实现了)。

提交方式:即上传代码的方式,我们这里选择“通过本地上传zip包”

单击“上传”

选择上传的文件

选择我们之前准备好的代码的压缩文件,然后点击“打开”即可。

选择完文件之后配置高级设置。

选择完文件之后配置高级设置

单击“高级设置”

高级设置

将超时时间设置为“20”秒,这里我们设置的宽裕一点,暂时不用这么节省,后期如果你经常使用腾讯云函数,可以根据情况来自行调整。

单击“完成”,选择的文件在此时正式被上传。

然后自动跳转到函数管理页面。

函数管理页面

测试函数

单击“函数代码”进入代码查看和测试页面。

函数代码

单击下面的“测试”按钮进行测试此函数是否正常运行。

稍等片刻,可以看到执行摘要提示“测试成功”,同时在执行日志可以看到执行过程。

测试成功

注意:“测试成功”只代表程序正常运行,但是不能代表提交信息成功,提交信息是否成功还是以“本次提报成功”这几个字为准。

设置自动定时运行

触发器

单击“触发管理”-“创建触发器”

创建触发器

定时任务名称:随便填。

触发周期:选择“自定义触发周期”

Cron表达式:填写0 0 5,6,7 * * * *,代表每天5点、6点、7点定时启动,如果你为了保险一点,再多几次启动也行,程序会自动判断有没有提交,如果提交了,就不会重复提交。比如你想8点也启动一次,那就在7后边加上,8,注意有个英文逗号。

如果你想要了解更多的Cron表达式,可以参考https://cloud.tencent.com/document/product/583/9708。

至此,算是已经成功,设置好的前1-2天,建议还是不要放松警惕,每天早上注意检查,如果1-2两天都正常提交,后边基本没问题了。