本文正在参与 “100%有奖 | 我的Serverless 实战”征稿活动

活动链接:https://marketing.csdn.net/p/15940c87f66c68188cfe5228cf4a0c3f

目录

一、serverless简介

serverless架构

serverless三大应用场景

serverless的优势

二、python实现发送邮件

三、部署到腾讯云serverless,实现自动发送

四、效果展示

五、注意事项


一、serverless简介

serverless,顾名思义,即“无服务器”,提供一个微型的架构,用户不需要部署、配置或管理服务器服务,只需要专注于业务逻辑,代码运行所需要的服务器服务皆由云端平台来提供,因此运维成本很低。

serverless有一个非常出名的产品,就是亚马逊公司在2014年推出的AWS Lambda

  • serverless架构

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

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

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

  • serverless三大应用场景

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

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

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

  • serverless的优势

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

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

具体可以查看这里的文档  https://www.serverless.com/cn/framework/docs/


二、python实现发送邮件

import io
import sys
import time
import datetime
import random
import requestsfrom email.mime.text import MIMEText
from email.header import Header
import smtplibimport logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)mail_host = "smtp.qq.com"
mail_user = "*********@qq.com" #此处填你的邮箱
mail_girl = "*********@qq.com" #女朋友的邮箱
mail_pass = "*************" #邮箱密码,默认POP3/SMTP服务是关闭的,需要在设置中开启查看
name_gf = "***" #女朋友的名字
mail_port = 465
#sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8')def getWeather():r = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=%E5%8C%97%E4%BA%AC')if 'OK' in r.text:r = r.json()['data']tip = r['ganmao']temperature = r['wendu']weather = r['forecast'][0]['type']return f'天气:{weather} 当前温度:{temperature}\n{tip}'return '获取天气失败:('def getTime():today = datetime.datetime.now()+datetime.timedelta(hours=+8)t = today.timetuple()return f'今天是{t.tm_year}年{t.tm_mon}月{t.tm_mday}日 星期{t.tm_wday+1}'def getSoup():return{0:'你知道你和星星有什么区别吗?星星在天上,你在我心里。',1:'这是我的手背,这是我的脚背,你是我的宝贝。',2:'莫文蔚的阴天,孙燕姿的雨天,周杰伦的晴天,都不如你和我聊天。',3:'我觉得你好像一款游戏。什么游戏?我的世界。',4:'你今天特别讨厌,讨人喜欢和百看不厌。',5:'你上辈子一定是碳酸饮料吧,为什么我一看到你就能开心的冒泡。',6:'我对你的爱,就像拖拉机上山,轰轰烈烈……',}.get(random.randint(0,6),'false')def morning():return '\n'.join([getTime(), getSoup(), getWeather()])def night():return '\n'.join([getSoup(),  f'晚安,{name_gf},梦里见!'])def getTimeX():t = int(time.strftime("%H", time.localtime()))+8if t > 24:t = t-24return 'morning' if t < 11 else ('noon' if t < 17 else 'afterNoon')def main_handler(event, context):smtpObj = smtplib.SMTP_SSL(mail_host, mail_port)print('enter')try:smtpObj.login(mail_user, mail_pass)except smtplib.SMTPException as e:logger.info(e)return Falsecontent = night() if getTimeX() == 'afterNoon' else morning()message = MIMEText(content, 'plain', 'utf-8')message['From'] = mail_usermessage['To'] = mail_girlmessage['Subject'] = f'早安,{name_gf}' if getTimeX() != 'afterNoon' else '晚安,{name_gf}'try:smtpObj.sendmail(mail_user, [mail_girl], message.as_string())logger.info("发送成功")except smtplib.SMTPException as e:logger.info(e)logger.info("发送失败")logger.info(content)return content

三、部署到腾讯云serverless,实现自动发送

1.注册腾讯云账号腾讯云 - 产业智变 云启未来 (tencent.com)

2.找到云函数的管理控制台->函数服务->新建->自定义创建

3.将函数代码粘贴到index.py中,单击完成。

4.点击部署,部署到腾讯云

5.找到触发管理,创建触发器,设置定时触发


四、效果展示

马上就要到520了,快用起来吧!


五、注意事项

同时发给多个人的时候,一定要注意创建一个新的函数。

为什么呢?

因为我在运行过程中出现了一个error,收到的邮件是这个样子

一堆“早安,小红”里面突然混进了一个“早安,小白”。

查看了一下日志,是一个超时错误。调用失败后自动运行了前一个调用成功的代码,而我发送的时候只改了女朋友的名字。。

(幸好是在测试的时候发现的,否则又将是一个翻车现场。


本文正在参与 “100%有奖 | 我的Serverless 实战”征稿活动

活动链接:https://marketing.csdn.net/p/15940c87f66c68188cfe5228cf4a0c3f

我的 Serverless 实战 — 5分钟,教你用Serverless每天跟女朋友说1000遍土味情话!相关推荐

  1. Serverless 实战 —— ​​​​​​​与微服务一脉相承,Serverless适用何种场景?会带来哪些冲击?

    Serverless 实战 -- 与微服务一脉相承,Serverless适用何种场景?会带来哪些冲击? Serverless 架构用来描述那些显著或完全依赖于第三方应用或服务("在云端&qu ...

  2. Serverless实战 —— 三分钟入坑指北 Docsify + Serverless Framework 快速创建个人博客系统

    三分钟入坑指北

  3. Python 爬虫实战(一) 每天早晨为女朋友发送天气和土味情话邮件

    让女朋友感受程序员的浪漫吧! 发送邮件函数,使用SMTP发送邮件: dailyemail.py from email.header import Header from email.mime.text ...

  4. 我的 Serverless 实战 — 入门项目实战(2021以后都属于云的时代!)

    [本文正在参与 "100%有奖 | 我的Serverless 实战"征稿活动] 活动地址: 100%有奖 | 我的Serverless 实战 文章目录 前言 什么是Serverle ...

  5. 三分钟教你快速选择机器视觉传感器

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|新机器视觉 六招教您合理选择机器视觉传感器 传感器是一种 ...

  6. vue前端用服务器上路径的图片展示_5分钟教你用nodeJS手写一个mock数据服务器

    对于前端开发者而言,javascript正扮演着越来越重要的地位,它不仅能为浏览器端赋能,在web服务器方面也有很大的价值(我们可以用nodeJS来写服务端代码,启动web服务器),因此本文所要描述的 ...

  7. 十分钟教你开发EOS智能合约

    十分钟教你开发EOS智能合约 在CSDN.柏链道捷(PDJ Education).HelloEOS.中关村区块链产业联盟主办的「EOS入门及最新技术解读」专场沙龙上,柏链道捷(PDJ Educatio ...

  8. Serverless实战之路

    by yugasun from yugasun.com/post/server 本文可全文转载,但需要保留原作者和出处. 在阅读本文之前,需要读者对 Serverless 概念有一定的了解,如果你还不 ...

  9. Serverless 实战 —— Serverless + Egg.js 后台管理系统实战

    Serverless + Egg.js 后台管理系统实战 作为一名前端开发者,在选择 Nodejs 后端服务框架时,第一时间会想到 Egg.js,不得不说 Egg.js 是一个非常优秀的企业级框架,它 ...

最新文章

  1. std::tuple类型
  2. 基于三维卷积神经网络的RGB-D显著目标检测
  3. 最后生成神么格式的代码_智能扩充机器人的“标准问”库之Query生成
  4. Win10上rabbitmq 安装
  5. Delphi 字符串转十六进制
  6. 将一个datetime的now转换为只有日期的_不要眨眼!中英文、大小写转换,一秒就搞定!
  7. solidity字符串拼接
  8. python 西门子交换机_python读取交换机
  9. android企业手机安全软件开发,基于Android的手机安全管理软件的设计与实现毕业论文.doc...
  10. Kali Linux 从入门到精通(八)-主动信息收集
  11. 微软披露首个由中国发现的蠕虫级漏洞 奇安信代码安全实验室获致谢
  12. Android Studio 无法启动模拟器的一种可能是你装的是Ghost版的系统
  13. 使用PagedDataSource类实现分页
  14. [转载] 用python写的一个简单的记事本
  15. ibm system x服务器重装系统,IBM X346服务器重装系统_xSeries 346阵列配置
  16. 从零开始学androidScrollView滚动视图.十八.
  17. 关于wireshark中“TCP segment of a reassembled PDU”
  18. 1060显卡支持dx12吗_真香!1060显卡支持光线追踪技术
  19. python人名独特性统计_荐第六章:组合数据类型练习[人名独特性统计]学习思考...
  20. 矢量网络分析仪VNA的校准之SOLT方法

热门文章

  1. 深入浅出计算机组成原理 指令跳转(自我提升第十八天)
  2. 深入理解操作系统(10)第四章:处理器体系结构(2)Y86-64的顺序实现(包括:SEQ/指令的各阶段操作:取指,解码,执行,访存,回写,更新PC/序列指令/硬件结构/时序/阶段的实现/SEQ+)
  3. 京东智臻链首推电子营业执照区块链应用场景落地
  4. python界面英文翻译_Python编辑器英文菜单的中文翻译及解释,看看吧,磨刀不误砍柴工...
  5. html简单推箱子(3个箱子)
  6. python 随机生成整数 浮点数 字符 排序 简单案例
  7. [ 教程 ] 小米4 MI4 cancro 刷完win10预览版后回到MIUI
  8. java jar 签名_JAR包数字签名与验证
  9. 如何在MacBook苹果电脑中打出中文括号【】
  10. 面试前必备的 JavaScript 基础知识梳理总结