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

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

Jan 11, 2025 pm 04:09 PM

我已经有一段时间没有机会构建一些简单、有趣和现代的东西了。到 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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1672
14
CakePHP 教程
1428
52
Laravel 教程
1332
25
PHP教程
1276
29
C# 教程
1256
24
Python与C:学习曲线和易用性 Python与C:学习曲线和易用性 Apr 19, 2025 am 12:20 AM

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

学习Python:2小时的每日学习是否足够? 学习Python:2小时的每日学习是否足够? Apr 18, 2025 am 12:22 AM

每天学习Python两个小时是否足够?这取决于你的目标和学习方法。1)制定清晰的学习计划,2)选择合适的学习资源和方法,3)动手实践和复习巩固,可以在这段时间内逐步掌握Python的基本知识和高级功能。

Python vs.C:探索性能和效率 Python vs.C:探索性能和效率 Apr 18, 2025 am 12:20 AM

Python在开发效率上优于C ,但C 在执行性能上更高。1.Python的简洁语法和丰富库提高开发效率。2.C 的编译型特性和硬件控制提升执行性能。选择时需根据项目需求权衡开发速度与执行效率。

Python vs. C:了解关键差异 Python vs. C:了解关键差异 Apr 21, 2025 am 12:18 AM

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

Python标准库的哪一部分是:列表或数组? Python标准库的哪一部分是:列表或数组? Apr 27, 2025 am 12:03 AM

pythonlistsarepartofthestAndArdLibrary,herilearRaysarenot.listsarebuilt-In,多功能,和Rused ForStoringCollections,而EasaraySaraySaraySaraysaraySaraySaraysaraySaraysarrayModuleandleandleandlesscommonlyusedDduetolimitedFunctionalityFunctionalityFunctionality。

Python:自动化,脚本和任务管理 Python:自动化,脚本和任务管理 Apr 16, 2025 am 12:14 AM

Python在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。

科学计算的Python:详细的外观 科学计算的Python:详细的外观 Apr 19, 2025 am 12:15 AM

Python在科学计算中的应用包括数据分析、机器学习、数值模拟和可视化。1.Numpy提供高效的多维数组和数学函数。2.SciPy扩展Numpy功能,提供优化和线性代数工具。3.Pandas用于数据处理和分析。4.Matplotlib用于生成各种图表和可视化结果。

Web开发的Python:关键应用程序 Web开发的Python:关键应用程序 Apr 18, 2025 am 12:20 AM

Python在Web开发中的关键应用包括使用Django和Flask框架、API开发、数据分析与可视化、机器学习与AI、以及性能优化。1.Django和Flask框架:Django适合快速开发复杂应用,Flask适用于小型或高度自定义项目。2.API开发:使用Flask或DjangoRESTFramework构建RESTfulAPI。3.数据分析与可视化:利用Python处理数据并通过Web界面展示。4.机器学习与AI:Python用于构建智能Web应用。5.性能优化:通过异步编程、缓存和代码优

See all articles