Pluto 部署 FastAPI 应用

Tags: #AWS #Python #FastAPI
Code: https://github.com/pluto-lang/pluto/tree/main/examples/fastapi (opens in a new tab)


Pluto 部署 FastAPI 应用

这个示例应用程序展示了如何将 FastAPI 应用程序与 Pluto 结合使用。

前提

开始

可以按照一下步骤部署这个示例:

  1. 克隆仓库:
git clone https://github.com/pluto-lang/pluto
cd examples/fastapi
  1. 安装所需的依赖项:
npm install
pip install -r requirements.txt
  1. 修改 app/main.py 文件:
  • return_app 函数内定义你的 FastAPI 应用程序,需要确保所有的路由都在这个函数内定义。
  • api_gateway_base_path 变量设置为 API 网关的阶段名称,目前 Pluto 部署的阶段名称默认为 /dev
  1. 部署应用程序:
pluto deploy

这条命令会把你的 FastAPI 应用程序作为无服务器应用程序部署到 AWS 上,将创建一个 Api Gateway 实例和一个 Lambda 函数实例来处理请求。同时会在终端打印出 AWS 的 Api Gateway 的 URL,你可以通过访问这个 URL 来访问部署的应用程序。

注意

必须从一个函数返回 FastAPI 应用程序,并且路由应该在该函数内定义。这是因为 Pluto 是通过静态程序分析的方式找到基础设施类方法调用 router.all 的所有依赖语句,然后并将所有依赖语句封装到一个代码包中。如果 FastAPI 应用程序定义在函数外部,Pluto 将只找到应用程序对象的定义语句,而路由的配置语句将不被包含在最终的代码包中,导致部署后的应用程序无法正常工作。

app/main_best.py 展示了 Pluto 通过 SDK 集成 FastAPI 应用程序的最佳界面,但是目前还没有实现。