Jupyter AI

36 在云平台上部署FastAPI应用

📅 发表日期: 2024年8月18日

分类: 🚀Python FastAPI 入门

👁️阅读: --

在上一篇中,我们探讨了如何使用Docker来部署FastAPI应用。这种容器化的方法非常灵活,但如果你希望简化部署流程,或者希望利用云服务提供的可扩展性与高可用性,云平台部署将是一个极佳的选择。在本篇中,我们将详细讨论如何在云平台上部署FastAPI应用。

选择云平台

常见的云平台有很多,包括:

  • AWS(Amazon Web Services)
  • Google Cloud Platform(GCP)
  • Microsoft Azure
  • Heroku(适合快速部署)
  • DigitalOcean

对于本教程,我们将以 Heroku 为例,它非常友好且适合小型应用的快速部署。

第一步:准备FastAPI应用

假设我们之前已经有一个简单的FastAPI应用,代码如下:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

将以上代码保存为 main.py 文件。

第二步:创建依赖描述文件

在Heroku上运行Python应用需要一个依赖文件,通常为 requirements.txt 文件。你可以使用以下命令自动生成:

pip freeze > requirements.txt

确保 requirements.txt 文件中包含 fastapiuvicorn 这两个必要的库。例如:

fastapi==0.75.0
uvicorn==0.17.0

此外,我们需要定义一个 Procfile 文件,以告诉Heroku如何启动应用。创建一个名为 Procfile 的文件,内容如下:

web: uvicorn main:app --host 0.0.0.0 --port ${PORT:-5000}

在上面的命令中,main 是包含 FastAPI 应用的 Python 文件名(不带 .py 后缀),app 是 FastAPI 应用实例的名字。

第三步:创建Heroku账号并安装Heroku CLI

访问 Heroku官网 注册一个账户,并按以下步骤安装Heroku CLI:

  1. 下载并安装Heroku CLI:Heroku CLI下载链接
  2. 安装后,使用以下命令登录:
heroku login

第四步:创建Heroku应用

通过以下命令在 Heroku 上创建一个新的应用:

heroku create my-fastapi-app

my-fastapi-app 可以替换为你想要的任何应用名称,全局唯一。

第五步:部署FastAPI应用

接下来,我们将代码提交到Heroku。根据以下步骤操作:

  1. 初始化Git仓库(如果还未初始化):
git init
  1. 添加文件并提交:
git add .
git commit -m "Initial commit"
  1. 将Heroku远程仓库添加到本地Git:
heroku git:remote -a my-fastapi-app
  1. 推送代码到Heroku:
git push heroku master

在推送过程中,Heroku会自动检测到你的 requirements.txtProcfile,并会安装依赖。

第六步:访问你的应用

一旦部署完成,Heroku会提供应用的URL,可以通过以下命令获取:

heroku open

在浏览器中打开后,你应该能看到返回的 JSON 响应如:

{"Hello": "World"}

你也可以通过访问 /items/1?q=foo 来测试不同的API路由。

第七步:监控与日志

你可以通过以下命令查看Heroku上的实时日志,以监控应用的运行状况:

heroku logs --tail

小结

在本教程中,我们介绍了如何在云平台(以Heroku为例)上部署FastAPI应用。我们从创建FastAPI应用开始,经过创建必要的依赖文件,最终实现应用的部署和访问。这一过程展示了在云环境中快速上线应用的便利性,未来我们将讨论如何在其他云平台(如AWS、GCP等)上部署FastAPI应用。

🚀Python FastAPI 入门 (滚动鼠标查看)