無伺服器 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适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。
