转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]
你是否也在忧愁,想把自己的项目放在云上跑,但又不想花大价钱购买云服务器?
云函数介绍
云函数(Serverless Cloud Function,SCF)的简单理解就是:可以部署在云上的项目,但不需要特地购买服务器,并且可以通过“定时/url访问”等特定方式触发运行。这特别适合于既需要云环境,但又不需要为此大成本购买服务器的用户。
比如,我只是希望能定时运行一个检查专利状态、自动签到的脚本,也可能是想要运行一个flask API网管,甚至你也可以用它来做自制软件的网络验证。
使用示例
这里,我们就简单介绍一个基于腾讯云函数的小应用:定时监控专利状态。部署流程都一样,熟悉后你就尝试可以从小应用扩展到大应用。
领取云函数资源
目前,腾讯向新用户免费赠送了3个月的体验版本,没有云函数资源得同学可以赶紧薅起来!领取入口:免费云函数
脚本编写
脚本的编写与在本地开发的模式一模一样,没有任何区别。
1、先点击“新建”云函数:
2、这里官方也提供了很多例程给你直接尝试:
3、不过我们是自己创建的话,就选右边的“从头开始”,并填写好信息:
这里的“事件函数”和“web函数”就是你的触发执行方式,由于是定时执行,所以这里选择“事件函数”。如果你想通过访问指定URL来触发执行(比如上传图片),那就选“web函数”。
“高级配置”这里是根据你代码的需求来填,一般来说保持默认就行:
“触发器配置”这里是让我们设置定时信息:
注意,如果你前面选的是“web函数”,那这里的内容就不一样了,它就长这样,也比较直观好理解:
如果写完代码,可以点“测试”跑一下,输出内容会显示在右下角:
5、我们以这个专利状态为例:SooPAT 专利搜索,它长这个样子:
我们使用requests库来请求这个url,再解析他的返回内容即可。注意,这里的requests是第三方库,这可如何安装?
我们直接在IDE下方的“终端”执行pip安装即可,非常的方便:
那么,最后的代码可以是这样的:
# -*- coding: utf8 -*-
import requests
from lxml import etree
def main_handler(event, context):
url = 'http://www.soopat.com/Home/SipoLegal/202211296680'
html = requests.get(url)
root = etree.HTML(html.text)
date = root.xpath('//*[@id="PatentContentTable"]/tbody/tr[3]/td[2]/text()')[0].strip()
state = root.xpath('//*[@id="PatentContentTable"]/tbody/tr[5]/td[2]/text()')
state = ', '.join(state).strip()
content = '公告日: ' + date + '; 状态: ' + state
url = 'http://xfxuezhang.cn:9966/QQ/send/?target=1061700625&msg='+content
requests.get(url)
这段代码实现了检查专利状态,并将结果发送到指定的url。
6、确认代码没有问题后,点击下方的“部署”,就可以让代码开始自动执行了:
7、支持各种信息的监控,方便合理的分配资源:
Serverless应用
如果说前面介绍的云函数是函数级别的上云,那Serverless应用就是框架级别的上云,它可以帮你创建指定框架下的环境,而不需要手动一点点搭建。可以看到,新建界面它只提供了各种框架的选择:
这种类型的,适合于比如你想做一个API网关,或者一个具体地、完整地应用。我们以创建一个Flask网关来给大家做一个演示。
1、简单填写一下信息:
在“高级配置”这里,我们可以勾选一下“固定出口IP”这个选项,因为它是免费的,不用白不用!
2、它会自动拉取代码并初始化环境,根据项目大小可能需要等待个5分钟,默默等待它部署完成:
3、创建完成后,点击这个“URL”就可以访问到这个应用了,不过我们还没有编写代码。我们回到“函数服务”这一栏,可以看到我们创建的flask应用,点进去:
跟前面步骤一样,我们根据自己的需求编写代码,编写完成后点击“部署”。
总结
云函数真是的非常的方便,它帮助我们实现了项目的上云,又不需要花大价钱去买云服务器。而且还有一点,云函数的通信安全是由腾讯来保障,因此免去了在服务器上还需要考虑如何防止被入侵的烦恼。对于需求量不大的用户简直是方便的不要不要的。