你是否也在忧愁,想把自己的项目放在云上跑,但又不想花大价钱购买云服务器?

云函数介绍

        云函数(Serverless Cloud Function,SCF)的简单理解就是:可以部署在云上的项目,但不需要特地购买服务器,并且可以通过“定时/url访问”等特定方式触发运行。这特别适合于既需要云环境,但又不需要为此大成本购买服务器的用户。

        比如,我只是希望能定时运行一个检查专利状态、自动签到的脚本,也可能是想要运行一个flask API网管,甚至你也可以用它来做自制软件的网络验证。

使用示例

        这里,我们就简单介绍一个基于腾讯云函数的小应用:定时监控专利状态。部署流程都一样,熟悉后你就尝试可以从小应用扩展到大应用。



领取云函数资源

        目前,腾讯向新用户免费赠送了3个月的体验版本,没有云函数资源得同学可以赶紧薅起来!领取入口:免费云函数


【教程】初识云函数,实现无需服务器的项目上云!_运维

【教程】初识云函数,实现无需服务器的项目上云!_服务器_02



脚本编写

脚本的编写与在本地开发的模式一模一样,没有任何区别。

1、先点击“新建”云函数:

【教程】初识云函数,实现无需服务器的项目上云!_SCF_03

2、这里官方也提供了很多例程给你直接尝试:



【教程】初识云函数,实现无需服务器的项目上云!_SCF_04

3、不过我们是自己创建的话,就选右边的“从头开始”,并填写好信息:

【教程】初识云函数,实现无需服务器的项目上云!_服务器_05

        这里的“事件函数”和“web函数”就是你的触发执行方式,由于是定时执行,所以这里选择“事件函数”。如果你想通过访问指定URL来触发执行(比如上传图片),那就选“web函数”。



        “高级配置”这里是根据你代码的需求来填,一般来说保持默认就行:

【教程】初识云函数,实现无需服务器的项目上云!_SCF_06

        “触发器配置”这里是让我们设置定时信息:

【教程】初识云函数,实现无需服务器的项目上云!_运维_07




        注意,如果你前面选的是“web函数”,那这里的内容就不一样了,它就长这样,也比较直观好理解:


【教程】初识云函数,实现无需服务器的项目上云!_服务器_08


4、等待部署完成后,就可以开始编写具体代码了。IDE应该是vscode改的,是不是就跟你本地一模一样:


【教程】初识云函数,实现无需服务器的项目上云!_SCF_09

        如果写完代码,可以点“测试”跑一下,输出内容会显示在右下角:

【教程】初识云函数,实现无需服务器的项目上云!_SCF_10

5、我们以这个专利状态为例:SooPAT 专利搜索,它长这个样子:

【教程】初识云函数,实现无需服务器的项目上云!_SCF_11

        我们使用requests库来请求这个url,再解析他的返回内容即可。注意,这里的requests是第三方库,这可如何安装?

        我们直接在IDE下方的“终端”执行pip安装即可,非常的方便:

【教程】初识云函数,实现无需服务器的项目上云!_运维_12

        那么,最后的代码可以是这样的:


# -*- 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、确认代码没有问题后,点击下方的“部署”,就可以让代码开始自动执行了:

【教程】初识云函数,实现无需服务器的项目上云!_运维_13

7、支持各种信息的监控,方便合理的分配资源:

【教程】初识云函数,实现无需服务器的项目上云!_腾讯_14




Serverless应用

        如果说前面介绍的云函数是函数级别的上云,那Serverless应用就是框架级别的上云,它可以帮你创建指定框架下的环境,而不需要手动一点点搭建。可以看到,新建界面它只提供了各种框架的选择:

【教程】初识云函数,实现无需服务器的项目上云!_无服务_15

        这种类型的,适合于比如你想做一个API网关,或者一个具体地、完整地应用。我们以创建一个Flask网关来给大家做一个演示。




1、简单填写一下信息:

【教程】初识云函数,实现无需服务器的项目上云!_服务器_16

        在“高级配置”这里,我们可以勾选一下“固定出口IP”这个选项,因为它是免费的,不用白不用!

【教程】初识云函数,实现无需服务器的项目上云!_服务器_17




2、它会自动拉取代码并初始化环境,根据项目大小可能需要等待个5分钟,默默等待它部署完成:

【教程】初识云函数,实现无需服务器的项目上云!_SCF_18




3、创建完成后,点击这个“URL”就可以访问到这个应用了,不过我们还没有编写代码。我们回到“函数服务”这一栏,可以看到我们创建的flask应用,点进去:

【教程】初识云函数,实现无需服务器的项目上云!_运维_19




        跟前面步骤一样,我们根据自己的需求编写代码,编写完成后点击“部署”。



【教程】初识云函数,实现无需服务器的项目上云!_运维_20




总结

        云函数真是的非常的方便,它帮助我们实现了项目的上云,又不需要花大价钱去买云服务器。而且还有一点,云函数的通信安全是由腾讯来保障,因此免去了在服务器上还需要考虑如何防止被入侵的烦恼。对于需求量不大的用户简直是方便的不要不要的。