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

news2024/12/23 3:10:04

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]

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

云函数介绍

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

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

使用示例

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

领取云函数资源

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

脚本编写

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

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

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

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

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

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

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

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

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

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

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应用,点进去:

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

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/866436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第四十八周周报

学习目标: 修改ViTGAN 学习内容: 位置编码和多尺度 学习时间: 8.5-8。12 学习产出: 这两周主要工作在修改ViTGAN的结构和代码,将相对位置编码加入ViTGAN并将生成器变为多尺度,由于匹配维度很困难&am…

国产航顺HK32F030M: 内部参考电压

HK32F030MF4P6 用户手册 内部参考电压 adc.c #include "bsp_adc.h"/*** brief ADC GPIO 初始化* param 无* retval 无*/ static void ADCx_GPIO_Config(void) {GPIO_InitTypeDef GPIO_InitStructure;// 打开 ADC IO端口时钟ADC_GPIO_AHBxClock_FUN ( ADC_GPIO_C…

无涯教程-Perl - msgctl函数

描述 该函数使用参数ID,CMD和ARG调用系统函数msgctrl()。您可能需要包括IPC::SysV包以获得正确的常量。 语法 以下是此函数的简单语法- msgctl ID, CMD, ARG返回值 该函数返回0,但如果系统函数成功返回0和1,则返回true。 Perl 中的 msgctl函数 - 无涯教程网无涯教程网提供…

TCP协议的报头格式和滑动窗口

文章目录 TCP报头格式端口号序号和确认序号确认应答(ACK)机制超时重传机制 首部长度窗口大小报文类型URGACKSYNPSHFINRST 滑动窗口滑动窗口的大小怎么设定怎么变化滑动窗口变化问题 TCP报头格式 端口号 两个端口号比较好理解,通过端口号来找…

3.UE基本操作及数字人工程模块组成(UE数字人系统教程)

1.Fay-UE5数字人工程导入 2.UE数字人语音交互 3.UE基本操作及数字人工程模块组成(UE数字人系统教程) 一、ue5基本操作 1、项目文件管理 2、关卡素材编辑 在关卡上:w、s、a、d移动,鼠标右键拖动换视角。 二、数字人工程模…

Downie 4 for Mac

Downie是一款Mac平台上非常实用的视频下载工具。它支持下载各种视频网站上的视频,并且具有快速、稳定、易于使用的特点。 Downie具有快速、稳定的下载速度,可以帮助用户轻松地下载高清视频和音频文件。 该软件还提供了简洁、易于使用的界面,…

Java并发编程(三)线程同步 上[synchronized/volatile]

概念 当使用多个线程来访问同一个数据时,将会导致数据不准确,相互之间产生冲突,非常容易出现线程安全问题,比如多个线程都在操作同一数据,都打算修改商品库存,这样就会导致数据不一致的问题。 所以我们通过线程同步机制来保证线程安全,加入同步锁以避免在该线程没有完成操作之前…

C++文件类(整理自C语言中文网-全)

C文件类(文件流类)及用法详解 《C输入输出流》一章中讲过,重定向后的 cin 和 cout 可分别用于读取文件中的数据和向文件中写入数据。除此之外,C 标准库中还专门提供了 3 个类用于实现文件操作,它们统称为文件流类&…

2.0 Maven基础

1. Maven概述 Maven概念 Apache Maven是一个软件项目管理工具,将项目开发和管理过程抽象程一个项目对象模型(POM,Project Object Model)。 Maven作用 项目构建 提供标准的、跨平台的自动化项目构建方式。 依赖管理 方便快捷…

【Java】数据交换 Json 和 异步请求 Ajax

🎄欢迎来到边境矢梦的csdn博文,本文主要讲解Java 中 数据交换和异步请求 Json&Ajax 的相关知识🎄 🌈我是边境矢梦,一个正在为秋招和算法竞赛做准备的学生🌈 🎆喜欢的朋友可以关注一下&#…

【枚举】CF1660 D

Problem - 1660D - Codeforces 题意: 思路: 思路巨简单,代码也wa了很多发才过,都是因为细节.... 很显然,要根据0分段处理 对于每一段,枚举去掉左边段还是右边段,左边段是 l 到第一个负数&am…

Blazor 简单组件(0):简单介绍

文章目录 前言说明环境安装 前言 Blazor 这个技术还是比较新,相关的UI组件还在完善,我这里提供一下我个人的组件开发。 说明 本UI组件是基于BootstrapBlazor(以下简称BB)开发。 BootstrapBlazor 文档 环境安装 C#小轮子:Visual Studio自…

Vue过滤器(时间戳转时间)

目录 过滤器 HTML写法: 定义过滤器: 定义全局过滤器: 过滤器串联: 带参数过滤器: 时间戳转时间 过滤器 官方地址:过滤器 — Vue.js (vuejs.org) 过滤器是指Vue.js支持在{{}}插值的尾部添加一个管道符“&#xff0…

【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio构建Java、Python项目

文章目录 一、云IDE1、云IDE简介2、云IDE和云虚拟桌面区别 二、Cloud Studio 简介1、简介2、AI代码助手3、企业源代码安全 三、快速开始1、登录Cloud Studio2、新建工作空间3、代码空间 四、项目构建1、构建Java项目1.1 新建工作空间1.2 初始化项目1.3 初始化小案例1.4、测试Ja…

(贪心) 剑指 Offer 14- II. 剪绳子 II ——【Leetcode每日一题】

❓剑指 Offer 14- II. 剪绳子 II 难度:中等 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n 都是整数,n > 1 并且 m>1 ),每段绳子的长度记为 k[0],k[1]...k[m - 1] 。请问 k[0]*k[1]*.…

【云原生】Docker 详解(三):Docker 镜像管理基础

Docker 详解(三):Docker 镜像管理基础 1.镜像的概念 镜像可以理解为应用程序的集装箱,而 Docker 用来装卸集装箱。 Docker 镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动容器。 Dock…

搭建Docker环境

目录 一、docker环境搭建 1、卸载旧版本docker 2、安装依赖和设置仓库 3、安装docker 4、启动并加入开机启动 5、验证是否安装成功 二、利用docker搭建nginx 1、拉取镜像 2、启动容器,部署nginx 一、docker环境搭建 1、卸载旧版本docker yum remove docke…

【Image captioning】ruotianluo/self-critical.pytorch之1—数据集的加载与使用

【Image captioning】ruotianluo/self-critical.pytorch之1—数据集的加载与使用 作者:安静到无声 个人主页 数据加载程序示意图 使用方法 示例代码 #%%from __future__ import absolute_import from __future__ import division from __future__ import print_…

Python(七十九)字符串的常用操作——字符串内容对齐操作的方法

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…