部署 Python Flask

最近更新时间:2020-12-17 20:29:04

操作场景

腾讯云 Flask Serverless Component,支持 Restful API 服务的部署,不支持 Flask Command。

注意:

任何支持 WSGI(Web Server Gateway Interface,即 Web 服务器网关接口)的 Python 服务端框架都可以通过该组件进行部署,例如 Falcon 框架等。

前提条件

  1. 在使用此组件之前,请确认您本地已安装好 Python 环境。
  2. 先初始化一个 Flask 项目,然后将 Flaskwerkzeug 添加到依赖文件 requirements.txt 中,如下:
    Flask==1.0.2
    werkzeug==0.16.0

同时新增 API 服务 app.py,下面代码仅供参考:

from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/")
def index():
   return "Hello Flask"
@app.route("/users")
def users():
   users = [{'name': 'test1'}, {'name': 'test2'}]
   return jsonify(data=users)
@app.route("/users/<id>")
def user(id):
   return jsonify(data={'name': 'test1'})

操作步骤

说明:

以下步骤主要针对命令行部署操作,控制台部署请参考 控制台部署指南

1. 安装 Serverless CLI

通过 npm 全局安装 Serverless CLI

npm install -g serverless

2. 初始化 Flask 模版项目(可选)

如果您本地并没有 Flask 项目,可通过以下指令完成 Flask 项目初始化(本地已有项目可跳过该步骤):

serverless init flask-starter --name example
cd example

3. 配置 yml 文件

在项目根目录下,新建 serverless.yml 文件,并将下列配置模版粘贴到文件中,实现基本的项目配置。

说明:

基于您实际部署需要,您可以在 serverless.yml 中完成更多配置,yml 文件的配置信息请参考 Flask 组件全量配置

touch serverless.yml
#serverless.yml
component: flask
name: flashDemo
stage: dev
inputs:
src:
  hook: 'pip install -r requirements.txt -t ./'
  dist: ./
  exclude:
    - .env
region: ap-guangzhou
runtime: Python3.6
apigatewayConf:
  protocols:
    - http
    - https
  environment: release

4. 应用部署

通过 sls deploy 命令进行部署,并可以添加 --debug 参数查看部署过程中的信息。

sls deploy --debug

部署完成后,通过访问输出的 API 网关链接,完成对应用的访问。

5. 监控运维

部署完成后,您可以通过访问 Serverless 应用控制台,查看应用的基本信息,监控日志。

账号配置(可选)

当前默认支持 CLI 扫描二维码登录,如您希望配置持久的环境变量/密钥信息,也可以本地创建 .env 文件:

touch .env # 腾讯云的配置信息

.env 文件中配置腾讯云的 SecretId 和 SecretKey 信息并保存:

# .env
TENCENT_SECRET_ID=123
TENCENT_SECRET_KEY=123
说明:

目录