本文介绍如何将基于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响应后再发送给客户端。工作原理如下图所示。

    image2

    如果您想了解更多关于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

操作步骤

  1. 执行以下命令克隆项目。
    git clone https://github.com/awesome-fc/fc-python-web.git
  2. template.yml文件中的CustomDomain参数修改为您自己的域名。
  3. 执行以下命令部署工程。
    fun deploy