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

柯里星轨
• 阅读 718

作者:安可

Serverless 简介

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

Serverless 架构

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

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

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

Serverless 三大应用场景

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

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

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

Serverless 的优势

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

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

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

https://developer.aliyun.com/...

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 每天给女朋友自动发土味情话

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

7. 导入依赖并部署

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

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

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

点击右上角保存并部署:

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

最终效果展示

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

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

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

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

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

总结

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

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

此处,立即查看原文!

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Stella981 Stella981
4年前
Kerberos无约束委派的攻击和防御
 0x00前言简介当ActiveDirectory首次与Windows2000Server一起发布时,Microsoft就提供了一种简单的机制来支持用户通过Kerberos对Web服务器进行身份验证并需要授权用户更新后端数据库服务器上的记录的方案。这通常被称为Kerberosdoublehopissue(双跃点问题),
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
4年前
Bazaar:阿里云Serverless计算服务探秘
_摘要:_ Serverless指用户无需管理服务器情况下构建和运行应用程序的一种方式。可见Serverless并不是真的不需要服务器,毕竟程序代码不能靠意念来执行,仍然是需要硬件服务器实体来作为运行代码的基础的。Bazaar:阿里云Serverless计算服务探秘 作者:Bazaar项目组1.    什么是Serverless
Stella981 Stella981
4年前
Serverless 架构就不要服务器了?
摘要:Serverless架构不是不要服务器了,而是依托第三方云服务平台,服务端逻辑运行在无状态的计算容器中,其业务层面的状态则被开发者使用的数据库和存储资源所记录。Serverless是什么我们在题目提出了一个问题,Serverless架构是不是就不要服务器了?回答这个问题,我们需要了解下Serve
Stella981 Stella981
4年前
Serverless 架构到底要不要服务器?
!(https://pic2.zhimg.com/80/v234d38c0fc0fd0315a93396dc8a074281_720w.jpg)Serverless是什么?Serverless架构是不是就不要服务器了?回答这个问题,我们需要了解下Serverless是什么。Serverless架构近
Wesley13 Wesley13
4年前
unity将 -u4E00 这种 编码 转汉字 方法
 unity中直接使用 JsonMapper.ToJson(对象),取到的字符串,里面汉字可能是\\u4E00类似这种其实也不用转,服务器会通过类似fastjson发序列化的方式,将json转对象,获取对象的值就是中文但是有时服务器要求将传参中字符串中类似\\u4E00这种转汉字,就需要下面 publ
Stella981 Stella981
4年前
Google地球出现“无法连接到登录服务器(错误代码:c00a0194)”解决方法
Google地球出现“无法连接到登录服务器(错误代码:c00a0194)”解决方法参考文章:(1)Google地球出现“无法连接到登录服务器(错误代码:c00a0194)”解决方法(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.codeprj.com%2Fblo
无服务器Serverless总结
本文分享自天翼云开发者社区@《》,作者:我是小朋友背景随着AWSLambda的诞生,无服务器与FaaS一起出现在舞台中,Serverless也开始进入人们的视野。全球各大云服务厂商都纷纷推出各自的Serverless平台。先了解下什么是云计算云计算是通过I