"阿里云函数计算使用Python开发一个基于WSGI的HTTP触发器(实战)"
本篇文章详细介绍了使用Python开发一个基于WSGI的HTTP触发器在阿里云函数计算中的应用实战,旨在实现一个端口-手机号配置的功能,可以接收到指定手机发来的短信,将消息过滤后转发至钉钉群。
**需求背景**
该项目旨在实现一个端口-手机号配置的功能,并且可以接收到指定手机发来的短信,将消息过滤后转发至钉钉群。该项目仅是服务端,另一端是Android,Android配置硬件实现端口切换,使手机使用某张卡,随后将收到的短信发送至服务端,服务端过滤消息后,将消息转发到钉钉群。
**技术选型**
在该项目中,我们选择了Python 3.7作为开发语言,WSGI作为web server,Redis作为数据存储,阿里云函数计算作为云端服务提供商。
* Python 3.7:选择Python 3.7是因为想挑战一下自己,并且可以学习一门新的语言。
* WSGI:没有选用基于WSGI的框架(flask或者django),因为时间有限。
* Redis:没有选用数据库,是因为该项目与业务关系不大,只是为了方便接收验证码。
* 阿里云函数计算:选择阿里云函数计算作为云端服务提供商,因为可以提供稳定、快速、可靠的云端服务。
**代码开发**
在部署项目到阿里云之前,需要让项目跑起来,并单测完成。我们使用wsgiref.simple_server来模拟一个服务。实现simple_server有三种方式(一个函数,一个类,或者一个重载了__call__的类的实例),我们选用的是最后一种方式。
**项目结构**
项目结构主要包括fcIndex.py、sms_log.py、redis_util.py、port_phone_conf.py等文件。fcIndex.py是项目的入口文件,负责路由配置和请求处理。sms_log.py负责短信日志记录,redis_util.py负责Redis数据库操作,port_phone_conf.py负责端口-手机号配置。
**实现细节**
在fcIndex.py文件中,我们定义了路由配置URL_PATTERNS,包括"/"和"/list"两种路由。"/"路由负责首页显示,"/list"路由负责短信列表显示。
在sms_log.py文件中,我们定义了短信日志记录类SMSLog,负责记录短信日志。
在redis_util.py文件中,我们定义了Redis数据库操作类RedisUtil,负责Redis数据库的连接和操作。
在port_phone_conf.py文件中,我们定义了端口-手机号配置类PortPhoneConf,负责端口-手机号配置。
**部署项目到阿里云**
在部署项目到阿里云之前,需要让项目跑起来,并单测完成。然后,我们可以将项目部署到阿里云函数计算中,并配置HTTP触发器,以便接受外部请求。
本篇文章详细介绍了使用Python开发一个基于WSGI的HTTP触发器在阿里云函数计算中的应用实战,旨在实现一个端口-手机号配置的功能,可以接收到指定手机发来的短信,将消息过滤后转发至钉钉群。