首页 > 后端开发 > Python教程 > 无服务器 FastAPI 开发:在 AWS 上构建 Player FC API

无服务器 FastAPI 开发:在 AWS 上构建 Player FC API

Linda Hamilton
发布: 2025-01-11 16:09:41
原创
514 人浏览过

我已经有一段时间没有机会构建一些简单、有趣和现代的东西了。到 2024 年年底,我偶然发现了 FastAPI,并感到很兴奋,虽然我之前在工作中构建过内部 API,但尚未创建任何面向公众的内容。

你好 FastAPI!

FastAPI 是一个现代、强大的框架,用于使用 Python 构建 API,它似乎非常适合我想要构建的内容,即用于基本足球运动员信息的 API。在决定使用“Player FC API”之前,我最初将其称为“Jugador FC”。

配置环境。

开始之前,请确保满足以下要求:

AWS CDK
码头工人
Python 3.12.7

创建项目

在您的计算机上创建一个目录。将其命名为 player_fc_fastapi_app,在此目录中创建以下子目录:

应用程序
    包含所有FastAPI代码
dynamo_db_local
    包含一个 python 脚本,用于创建 Amazon DynamoDB 表的本地版本
iac
    包含用于在 AWS 中创建资源的堆栈文件

我通过提供您可以运行的命令来简化以下操作以节省时间:

项目目录结构现在应如下所示:

设置Python环境

创建目录结构后,创建一个名为requirements.txt的文本文件,并在其中插入以下行:

创建requirements.txt文件后,创建虚拟环境并安装依赖项:

设置 Amazon DynamoDB Local

让我们从设置 DynamoDB 的本地实例开始,这需要安装并运行
Docker

提取图像并启动容器需要几秒钟的时间,完成后我们可以导航到

dynamo_db_local 目录并创建一个 create_ddb_table.py 文件,使用以下代码填充该文件:

使用此代码,您可以在本地 DynamoDB 实例中创建一个表。运行代码片段。 FastAPI开发

现在我们已经启动并运行了

DynamoDB
的本地实例,让我们开始创建应用程序,导航到
app

目录并创建两个文件:main.py 和requirements。 txt.

使用以下内容填充requirements.txt:

创建以下子目录:

模特
     Pydantic 玩家模型<script></script> <script></script>路由器<script></script><script></script>      包含路线<script></script> <script></script> <script></script> <script></script>

让我们使用 Pydantic 创建几个模型,我们将使用 Player 和 UpdatePlayer 模型来定义我们可以添加或修改的玩家信息的数据结构。

models 子目录中,创建一个空的 __init__.py 文件和一个名为players.py 的文件,并填充以下代码:

routers

子目录中,创建一个空的__init__.py文件和一个名为players.py的文件,并填充以下代码:

创建一个空的 __init__.py 文件会将文件夹变成 Python 包。

app
子目录中创建一个名为 main.py 的文件,并开始使用以下代码填充它:

试驾 是时候进行快速测试了,确保您位于 app

目录中并运行以下命令来启动
Uvicorn
:

现在我们的应用程序已启动并运行,导航至

http://127.0.0.1:8000/docs/

FastAPI Swagger Documentation

您将看到自动交互式 API 文档,其中有 6 个可用端点:

让我们尝试添加一个玩家。选择

POST /players
端点,选择
尝试一下

按钮并使用以下有效负载添加世界上最好的玩家“Vinícius Júnior”:

以下是每个 API 操作的实际效果。

Add Player

添加新玩家:

Get All Players

检索所有玩家:

Update Player

更新玩家信息:

Get Player

获取单人游戏详细信息:

Delete Player

删除玩家:

使用 AWS CDK v2 进行部署

现在我们已经可以在本地运行和测试我们的应用程序了,是时候在 AWS 上部署我们的应用程序了。我们将使用 AWS CDK v2。
导航到 <script></script>iac<script></script> 目录,运行以下命令来初始化 cdk 项目:<script></script> <script></script> <script></script> <script></script>

修改子目录中的requirements.txt文件,添加以下行:

让我们定义一个 DynamoDB 表、Lambda 函数和 Lambda 函数 url。在当前的 iac 目录中,您需要导航到另一个子目录 (iac

)。打开 iac_stack.py 文件,将 CDK 堆栈的内容替换为以下代码:

在启动部署之前,我们还有最后一步,将 app/routers 目录下的players.py 文件中的 local_development: bool 标记设置为

False

激活
iac
目录中的虚拟环境并使用以下命令安装依赖项:

使用 cdk 部署命令部署应用程序。CDK Deploy FastAPI APP
部署完成后,您将在终端输出中看到一个函数 URL,这是您在 AWS 上的 API 端点。

    使用函数 URL 测试所有端点,就像我们在本地测试期间所做的那样。添加玩家后,就可以验证我们的玩家数据是否持续存在或消失在以太中。
  1. 验证一切正常:
  2. 前往AWS 管理控制台
  3. 导航到DynamoDB
  4. 找到玩家桌子
选择

探索表格项目

Player FC DynamoDB Table

您应该在云端看到您的玩家数据:

重要:不要忘记清理资源!当不再需要时,您可以运行 cdk destroy 命令删除所有创建的 AWS 资源。 <script></script>我们从本地 FastAPI 开发到 AWS 上的无服务器部署的旅程就结束了。<script></script> <script></script> <script></script>

以上是无服务器 FastAPI 开发:在 AWS 上构建 Player FC API的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板