我已經有一段時間沒有機會建造一些簡單、有趣和現代的東西了。到 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/您將看到自動互動式 API 文檔,其中有 6 個可用端點:
讓我們嘗試新增一個玩家。選擇
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 端點。
探索表格項目
您應該在雲端看到您的玩家資料:
?
重要:不要忘記清理資源!當不再需要時,您可以執行 cdk destroy 指令刪除所有建立的 AWS 資源。 <script></script>我們從本地 FastAPI 開發到 AWS 上的無伺服器部署的旅程就結束了。 <script></script> <script></script> <script></script>以上是無伺服器 FastAPI 開發:在 AWS 上建置 Player FC API的詳細內容。更多資訊請關注PHP中文網其他相關文章!