效果展示:
女神Master发过来的邮件:
狗狗自动回复的邮件:
Serverless介绍:
Serverless是什么
Serverless,又叫无服务器。Serverless 强调的是一种架构思想和服务模型,让开发者无需关心基础设施(服务器等),而是专注到应用程序业务逻辑上。Serverless 也是下一代计算引擎。
Serverless,FaaS 和托管服务之间的关系
Serverless 与 FaaS(函数即服务)通常被视为可以互换的术语,但这并不准确。Serverless 是一种抽象层次更高的架构模式,而“FaaS + BaaS”只是 Serverless 这种架构模式的一种实现。
其中,FaaS 是一种特定类型的服务,例如 AWS Lambda,Google Cloud Functions,Azure Functions,阿里云函数计算和腾讯云云函数等等;而 BaaS(后端即服务)可以理解为其他类型的托管服务,例如数据库服务,对象存储服务和日志服务等等。
Serverless 具有的特质
这里叫特质,而非特性,因为这些属于 Serverless 架构的固有元素,我们无法像处理其它可塑特性那样做出调整。而特质是天然存在的。
- 免运维:不需要管理服务器主机或者服务器进程。
- 弹性伸缩:根据负载进行自动规模伸缩与自动配置。伸缩范围零到无穷大。
- 按需付费:根据使用情况决定实际成本。
- 高可用:具备隐含的高可用性。
Python代码实现:
importdatetimeimportzmailimportrequests, randomapi_token='**************'# 到https://www.alapi.cn/注册账号申请tokendefgetData(): api_url= ['https://v2.alapi.cn/api/qinghua', 'https://v2.alapi.cn/api/dog'] url=random.choice(api_url) header= { 'token': api_token } r=requests.get(url, headers=header) r.encoding=r.apparent_encodingres=r.json() try: ifres['code'] ==200: data=res['data']['content'] except: passifurl==api_url[0]: data='主人主人我想你啦,吸溜吸溜吸溜吸溜吸溜吸溜吸溜~\n'+dataelifurl==api_url[1]: data='主人主人我想你啦,吸溜吸溜吸溜吸溜吸溜吸溜吸溜~\n'+dataelse: passmail_server=zmail.server(username='**********@88.com', password='***********') mail=mail_server.get_latest() print("邮件主题:", mail['Subject']) print("邮件发送时间:", mail['Date']) print("发送者:", mail['From']) print("接收者:", mail['To']) print("内容:\n", mail['content_text']) print(mail_server.get_latest()['Date'].strftime('%Y-%m-%d %M')[:-1]) print(datetime.datetime.now().strftime("%Y-%m-%d %M")[:-1]) if (mail_server.get_latest()['From'] =='Master <**********@163.com>'andmail_server.get_latest()['Subject'] =='小狗在不在'andmail_server.get_latest()['Date'].strftime('%Y-%m-%d %M')[:-1] ==datetime.datetime.now().strftime("%Y-%m-%d %M")[:-1]): # 发送邮件(带附件)file_path='/untitled/1.jpg'mail_info= { 'subject': '来啦主人来舔你啦', 'content_text': data, 'attachments': file_path, } mail_server.send_mail('*********@163.com', mail_info) print('发送成功') getData()
阿里云 Serverless 实现代码部署与定时触发:
1. 先找到阿里云函数计算FC免费开通服务并点击管理控制台
2. 点击服务及函数;创建服务依次输入名称、描述,接着开启日志功能 方便之后check运行状态
3. 点击 创建函数
4. 接着按照 图片里的填入 你起的函数名称、运行环境、代码我们选择文件夹 上传的方式【将带有上面python代码的文件夹选中即可 非常简单】
5. 进入函数详情页面后,我们点击函数配置;环境信息配置;然后将 请求处理程序(函数入口)替换为我们的 py文件名+.+函数名【比如我图中的 vxRobot.getData】
6. 最后我们配置一下定时触发;首先点击 触发器管理、然后 创建触发器,选择 触发器类型、填入 触发器名称、选择 触发方式以及时间间隔
7. 上面都部署完毕之后,可以点击 测试函数 来执行,并点击 实时日志 查看是否成功
注意:这里有个提醒
如果代码里面有引入第三的包的话,可以先执行,然后根据提示的install语句 输入控制台 进行装包 ,装包结束或者修改代码结束后 需要点击 部署代码 才能生效。
舔狗Happy Ending: