FastAPI
FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 并基于标准的 Python 类型提示。具有以下特性:
- 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 Python web 框架之一。
- 高效编码:提高功能开发速度约 200% 至 300%。
- 更少 bug:减少约 40% 的人为(开发者)导致错误。
- 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。
- 简单:设计的易于使用和学习,阅读文档的时间更短。
本节介绍使用多种方式在云托管(容器型)部署 FastAPI 应用:
新建 FastAPI 项目
NOTE: 如果已经存在 FastAPI 项目,可以跳过该阶段。
- 新建一个 fastapi-app 目录
- 在 fastapi-app 目录中,新建一个 app.py 文件,内容如下:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"greeting": "Hello, World!", "message": "Welcome to FastAPI!"}
这个 app.py 文件定义了一个 FastAPI 应用,它包含一个根路径("/")和一个 GET 请求处理函数(root)。当用户访问根路径时,应用会返回一个包含问候语和欢迎信息的 JSON 响应。
- 在 fastapi-app 目录中,新建一个 requirements.txt 文件,内容如下:
fastapi==0.100.0
hypercorn==0.14.4
这个 requirements.txt 文件定义了 FastAPI 应用所需的依赖项。其中 hypercorn 是 FastAPI 运行时需要的 ASGI 服务器。
- 安装依赖启动服务
使用 pip 安装依赖:
pip install -r requirements.txt
推荐使用虚拟环境安装依赖:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
安装完成后,使用 hypercorn 启动服务:
hypercorn main:app --bind 0.0.0.0:80
访问http://127.0.0.1:80
即可返回相应结果。
在开发阶段,还可以使用 fastapi-cli
启动服务:
首先安装 fastapi-cli:
pip install fastapi-cli
然后启动服务:
fastapi dev main.py
使用 FastAPI 模版一键部署
- 前往 云开发控制台
- 在左侧导航栏选择【云托管】,在【服务列表】页面点击【创建服务】,选择【FastAPI 模版】,按照提示填写服务名称,即可创建并部署一个 FastAPI 应用。
NOTE: 获取模板源码
使用 Dockerfile 部署
在 fastapi-app 目录中,新建一个 Dockerfile 文件,内容如下:
FROM python:3-alpine
# 设定当前的工作目录
WORKDIR /app
# 拷贝当前项目到容器中
COPY . .
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 启动服务
CMD ["hypercorn", "main:app", "--bind", "0.0.0.0:80"]
部署调试
推荐使用 云托管 CLI 进行部署。
安装云托管 CLI 后,进入项目根目录,执行以下命令:
# 登录
tcb login
# 部署容器型云托管实例
tcb cloudrun deploy
实例部署完成以后,前往 云开发控制台
在左侧导航栏选择【云托管】, 在【服务列表】页面可以找到刚刚部署的实例,点击进入【服务详情】页面,在详情页可以找到默认域名, 访问该域名即可返回相应结果。