首頁 >後端開發 >Python教學 >無伺服器 FastAPI 開發:在 AWS 上建置 Player FC API

無伺服器 FastAPI 開發:在 AWS 上建置 Player FC API

Linda Hamilton
Linda Hamilton原創
2025-01-11 16:09:41573瀏覽

我已經有一段時間沒有機會建造一些簡單、有趣和現代的東西了。到 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