本文介绍如何将基于WSGI Web框架构建的工程部署到函数计算。
背景信息
- 函数计算HTTP触发器
HTTP触发器是众多函数计算触发器中的一种,通过发送HTTP请求触发函数执行,主要适用于快速构建Web服务等场景。HTTP触发器支持HEAD、POST、PUT、GET和DELETE方式触发函数。更多信息,请参见HTTP触发器。
- WSGI
WSGI的全称是Web Server Gateway Interface,简单翻译就是Web服务器网关接口。WSGI是一个规范,定义了Web服务器如何与Python应用程序进行交互,使得使用Python编写的Web应用程序可以和Web服务器对接起来。最新官方版本是在Python的PEP-3333定义的,更多信息,请参见PEP-3333。
- WSGI的工作原理
在WSGI中定义了Web服务器和应用程序端两个角色。Web服务器端称为Server或者Gateway,应用程序端称为Application或者Framework。因为WSGI的应用程序端的规范一般都是由具体的框架来实现的,下面统一使用Server和Application这两个术语,WSGI相当于是Web服务器和Python应用程序之间的桥梁。 Server端会先收到您的请求,然后会根据规范的要求调用Application端,然后Server会将调用Application返回的结果封装成HTTP响应后再发送给客户端。工作原理如下图所示。
如果您想了解更多关于WSGI的内容,请参见 PEP-3333
- 函数计算遇见WSGI
函数计算Python Runtime是Server,您的函数是Application,Applicaiton完全由您实现,也可以基于WSGI的Web框架上进行函数开发。更多信息,请参见 HTTP触发器Python-Runtime 。
- 基于WSGI协议的Frameworks
目前有很多Frameworks是基于WSGI协议的,比如Flask,Django等。更多信息,请参见 Frameworks that run on WSGI。
前提条件
- 准备工作
- 免费开通 函数计算。
- 准备域名,国内的需要备案, 并将域名CNAME解析到对应的函数计算EndPoint。
说明 例如将您自己的域名flask.mydomain.cn解析到123456.cn-hangzhou.fc.aliyuncs.com,您需要将对应的域名、AccessKey ID和地域修改成您自己的信息。 - 安装并配置Funcraft工具。具体步骤,请参见安装命令行工具和配置Funcraft。