跳到主要内容

FastAPI

FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 并基于标准的 Python 类型提示。具有以下特性:

  • 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 Python web 框架之一。
  • 高效编码:提高功能开发速度约 200% 至 300%。
  • 更少 bug:减少约 40% 的人为(开发者)导致错误。
  • 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。
  • 简单:设计的易于使用和学习,阅读文档的时间更短。

本文档介绍使用多种方式在云托管(容器型)部署示例 FastAPI 应用

创建一个 FastAPI 项目

NOTE: 如果已经存在 FastAPI 项目,可以跳过该阶段。

  1. 新建一个 fastapi-app 目录
  2. 在 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 响应。

  1. 在 fastapi-app 目录中,新建一个 requirements.txt 文件,内容如下:
fastapi==0.100.0
hypercorn==0.14.4

这个 requirements.txt 文件定义了 FastAPI 应用所需的依赖项。其中 hypercorn 是 FastAPI 运行时需要的 ASGI 服务器。

  1. 安装依赖启动服务

使用 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

配置 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"]

通过上面更改,你的 express 程序将可以部署到腾讯云托管了!

部署到云托管

云托管提供了多种部署方式来部署你的应用:

控制台部署

打开腾讯云托管, 点击通过本地代码部署 -> 填写服务名称 -> 部署方式选择上传代码包 -> 代码包类型选择文件夹 -> 选择 cloudrun-fastapi 目录进行上传 -> 端口填写 80 -> 点击创建并等待创建完成即可。

通过 cli 部署

如果您已经安装了 CloudBase CLI,可以在项目目录下使用以下命令将应用部署到 CloudBase 云托管:

tcb cloudrun deploy

输入环境和服务名称后,CLI 会自动打包应用像并部署到云托管。

除了手动部署外,你也可以一键安装上述应用:

一键从模版部署

一键从 github 部署