2 分钟,教你用 Serverless 每天给女朋友自动发土味情话

news/2024/5/20 9:26:33 标签: serverless, python, 前端, 阿里云, 云原生

作者:安可

Serverless 简介

Serverless,中文意思是 “无服务器”,所谓的无服务器并非是说不需要依靠服务器等资源,而是说开发者再也不用过多考虑服务器的问题,可以更专注在产品代码上,同时计算资源也开始作为服务出现,而不是作为服务器的概念出现。

Serverless 架构

主要包含两部分:BaaSFaaS,通常位于云端,使用时不需要关注最底层的服务器。

BaaS(后端即服务:Backend as a Service)包括对象存储、云数据库、API 网关、消息推送等。

FaaS(函数即服务:Functions as a Service)对计算能力进行了抽象,可以在无需管理服务器的情况下响应事件。

Serverless 三大应用场景

场景一:事件触发场景,有事件触发时才会执行。

场景二:流量突发场景,遇到突发大流量情况时,Serverless 架构下按需加载,弹性伸缩,节省资源,负载均衡。

场景三:大数据处理场景,用户只需要上传核心代码到函数计算,就可以快速完成整个工作。

Serverless 的优势

传统架构下,面对大流量场景,需要增加机器或者对机器升级,运维较为困难。面对高峰和低谷,无法做到按需使用,成本较高。

Serverless 架构下,开发者只需专注代码开发,无需在各个云资源控制台手动开通服务和配置管理,并能够根据业务请求自动进行弹性伸缩;支持用户按需付费,成本较低;开发周期快,很大程度上提升了开发、部署的效率。

具体可以查看阿里云相关文档:

https://developer.aliyun.com/group/serverless

Python 实现发送邮件

import requests
import yagmail   # 此模块用于发邮件
import schedule  # 此模块用于计划任务
from bs4 import BeautifulSoup
import re

ran = 0
url = 'https://tianqi.2345.com/cixian1d/70177.htm'  # 定义天气预报的url
loveurl = 'https://www.guaze.com/juzi/23389.html'  # 定义情话的url
def email():
    global ran      # 将ran变量声明为全局变量
    web = requests.get(url)
    # print(web.text)

    page = BeautifulSoup(web.text,"html.parser")

    # print(ran)

    # print(love[ran])

    weather = page.find("div",class_="real-today")
    # print(weather.text)

    web2 = requests.get(loveurl)
    web2.encoding = 'gb2312'
    page = BeautifulSoup(web2.text, "html.parser")

    div = page.find('div', class_="content")

    div = str(div.text)
    # print(div)
    grep = re.compile(r"\d+、(.*)")
    content = grep.findall(div)
    # print(content)


# email函数内的内容是爬取天气和情话的,具体的地址天气你可以更换url

    yag = yagmail.SMTP(
        host='smtp.qq.com', user='xxxxxxx@qq.com',   # 如过用的是qq邮箱就写smtp.qq.com,如果是163就写smtp.163.com
        password='xhaztrwpjffpbdhh', smtp_ssl=True       # 授权码在qq邮箱里开启smtp就会生成一个
    )
    weather = [weather.text,"每日情话:",content[ran],    # 定义发送内容
               yagmail.inline(r"/.love.jpg")    # 附件图片,不发图片可以删掉
               ]
    yag.send(
        to=['xxxxxxxxx@qq.com'],
        subject='早鸭',           # 邮件主题
        contents=weather          # 发送的内容为上面定义的weather,其中weather.text是天气预报,content[ran]是情话
    )
    print("发送完成")
    ran += 1

schedule.every().day.at("05:21").do(email)      # 每天5点20分执行函数email0
#schedule.every(10).seconds.do(email)  #每10秒执行一下函数email的内容,我这里用于测试
while True:
    schedule.run_pending(

部署到阿里云 Serverless,实现自动发送

1. 登录到阿里云首页

在这里插入图片描述

2. 选择产品->弹性计算->Serverless->函数计算

在这里插入图片描述

3.进入控制台->服务及函数->创建函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.上传代码->上传文件夹->选择文件夹->保存并部署

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.函数配置->编辑环境信息->修改函数入口

在这里插入图片描述
在这里插入图片描述

6.添加触发器,实现每日定时发送

触发器管理->创建触发器->定时触发器->填写名称和指定时间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7. 导入依赖并部署

先在终端执行以下三条命令,导入项目所需要的依赖:

pip3 install yagmail -t .
pip3 install schedule -t .
pip3 install bs4 -t .

在这里插入图片描述

点击右上角保存并部署:

在这里插入图片描述

最终效果展示

点击左上角测试函数,然后通过实时日志查看运行结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

这次实战是对 Serverless 的一次深刻的理解,收获技术的同时也提升了自己的学习能力。

由于目前正在准备考研,就好久没有更新关于自学技术的文章,这回借着阿里云官方评测活动也去学一学火热的 Serverless 无服务架构的技术和思想,在这里分享这个当下流行的技术,然后结合着一些个人浅显的探索,希望能和大佬们共同学习成长!

戳此处,立即查看原文!


http://www.niftyadmin.cn/n/9061.html

相关文章

浅谈无脚本自动化测试

在当今的企业环境中,软件测试不再被视为不必要的投资;相反,它已经上升到一种需要而不是奢侈品的水平。随着市场的不断变化和竞争的加剧,企业必须做一些让他们与竞争对手区分开来的事情。 为了使自己与众不同,公司必须提…

数据类型优化

schema与数据类型优化 数据类型优化原则 最小数据类型 尽量使用可以正确存储数据的最小数据类型,更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存。 更简单的数据类型 简单数据类型的操作通常需要更少的CPU周期 1.整型比字符操作代…

95后工程师上班哼小曲?那些愉快上班的打工人,到底怎么做到的?

特别羡慕我们公司一个画PCB板子的刘工,95后,来公司也3年多了,他不是我们部门赚得最多的,也不是人际关系处得最好的,却是活得最开心的。 具体表现在哪呢? ——他居然能每天哼着小曲上班。 怎么会有人上班…

SpringBoot八种bean的加载方式一学就会

目录 文章目录[toc]第一种bean的加载方式-配置文件第二种加载bean方式-注解和扫描创建第三方的bean对象第三种加载bean方式-不使用配置文件扩展-bean的加载方式扩展FactoryBean<>扩展-ImportResource导入配置文件扩展-proxyBeanMethods属性-产生代理对象第四种加载bean方…

计算机网络(二)

三、数据链路层 3.1 数据链路层概述 数据链路层在物理层提供的服务的基础上向网络层提供服务&#xff0c;其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。数据链路层在不可靠的物理介质上提供可靠的传输。 该层的作用包括&#xff1a;物理地址寻址…

蓝桥杯入门即劝退(九)罗马数字

“为什么你没有变强&#xff0c;因为你最近一直过得太舒服” ----------持续更新蓝桥杯入门系列算法实例------------- 如果你也喜欢Java和算法&#xff0c;欢迎订阅专栏共同学习交流&#xff01; 你的点赞、关注、评论、是我创作的动力&#xff01; -------希望我的文章对你有…

Python如何解决“滑块验证码”登录识别(3)

前言 本文是该专栏的第24篇,后面会持续分享python的干货知识,记得关注。 做爬虫项目的时候,总是会遇到我们的冤家老朋友——验证码(图文验证码,点选验证码,滑块验证码)等。前面我有介绍过图文验证码和点选验证码,针对验证码这块,后面我会持续更新这些验证码相关的文章。…