无服务器 FastAPI 开发:在 AWS 上构建 Player FC API
我已经有一段时间没有机会构建一些简单、有趣和现代的东西了。到 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环境
设置 Amazon DynamoDB Local
。
dynamo_db_local 目录并创建一个 create_ddb_table.py 文件,使用以下代码填充该文件:
使用此代码,您可以在本地 DynamoDB 实例中创建一个表。运行代码片段。 FastAPI开发
现在我们已经启动并运行了
DynamoDB目录并创建两个文件:main.py 和requirements。 txt.
使用以下内容填充requirements.txt:
创建以下子目录:
让我们使用 Pydantic 创建几个模型,我们将使用 Player 和 UpdatePlayer 模型来定义我们可以添加或修改的玩家信息的数据结构。
在 models 子目录中,创建一个空的 __init__.py 文件和一个名为players.py 的文件,并填充以下代码:
在routers
子目录中,创建一个空的__init__.py文件和一个名为players.py的文件,并填充以下代码:创建一个空的 __init__.py 文件会将文件夹变成 Python 包。
在
app试驾 是时候进行快速测试了,确保您位于 app
目录中并运行以下命令来启动
现在我们的应用程序已启动并运行,导航至
http://127.0.0.1:8000/docs/
让我们尝试添加一个玩家。选择
POST /players按钮并使用以下有效负载添加世界上最好的玩家“Vinícius Júnior”:
以下是每个 API 操作的实际效果。
使用 AWS CDK v2 进行部署
现在我们已经可以在本地运行和测试我们的应用程序了,是时候在 AWS 上部署我们的应用程序了。我们将使用 AWS CDK v2。修改子目录中的requirements.txt文件,添加以下行:
让我们定义一个 DynamoDB 表、Lambda 函数和 Lambda 函数 url。在当前的 iac 目录中,您需要导航到另一个子目录 (iac
)。打开 iac_stack.py 文件,将 CDK 堆栈的内容替换为以下代码:在启动部署之前,我们还有最后一步,将 app/routers 目录下的players.py 文件中的 local_development: bool 标记设置为
False激活
使用 cdk 部署命令部署应用程序。
部署完成后,您将在终端输出中看到一个函数 URL,这是您在 AWS 上的 API 端点。
- 使用函数 URL 测试所有端点,就像我们在本地测试期间所做的那样。添加玩家后,就可以验证我们的玩家数据是否持续存在或消失在以太中。
- 验证一切正常:
- 前往AWS 管理控制台
- 导航到DynamoDB
- 找到玩家桌子
探索表格项目
?
重要:不要忘记清理资源!当不再需要时,您可以运行 cdk destroy 命令删除所有创建的 AWS 资源。 <script></script>我们从本地 FastAPI 开发到 AWS 上的无服务器部署的旅程就结束了。<script></script> <script></script> <script></script>以上是无服务器 FastAPI 开发:在 AWS 上构建 Player FC API的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

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

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

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

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

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

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

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

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