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
配置 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 会自动打包应用像并部署到云托管。
除了手动部署外,你也可以一键安装上述应用: