ホームページ >バックエンド開発 >Python チュートリアル >サーバーレス FastAPI 開発: AWS でのプレーヤー FC API の構築

サーバーレス FastAPI 開発: AWS でのプレーヤー FC API の構築

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-11 16:09:41514ブラウズ

シンプルで面白くてモダンなものを構築する機会が久しぶりにありました。 2024 年のバックエンドに向けて、私は FastAPI に出会い、興奮しました。以前に仕事で内部 API を構築したことはありましたが、まだ公開するものは何も作成していませんでした。

こんにちは FastAPI!

FastAPI は、Python で API を構築するための最新の強力なフレームワークであり、私が構築したいもの、つまり基本的なサッカー選手情報の API に最適であるように思えました。最初は「Jugador FC」と名付けた後、「Player FC API」に落ち着きました。

環境の構成。

始める前に、次の要件を満たしていることを確認してください:

AWS CDK
ドッカー
Python 3.12.7

プロジェクトの作成

マシン上にディレクトリを作成します。 player_fc_fastapi_app という名前を付け、このディレクトリ内に次のサブディレクトリを作成します:

アプリ
    すべての FastAPI コードが含まれています
dynamo_db_local
    Amazon DynamoDB テーブルのローカル バージョンを作成するための Python スクリプトが含まれています
iac
    AWS でリソースを作成するためのスタック ファイルが含まれています

時間を節約するために実行できる以下のコマンドを提供することで、作業を簡単にしました。

プロジェクトのディレクトリ構造は次のようになります:

Python環境のセットアップ

ディレクトリ構造を作成した後、requirements.txt というテキスト ファイルを作成し、その中に次の行を挿入します。

requirements.txt ファイルを作成したら、仮想環境を作成し、依存関係をインストールします。

Amazon DynamoDB ローカルのセットアップ

DynamoDB のローカル インスタンスをセットアップすることから始めましょう。これには、
Docker

がインストールされ、実行されている必要があります。

イメージがプルされてコンテナが開始されるまでに数秒かかります。完了したら、

dynamo_db_local ディレクトリに移動して create_ddb_table.py ファイルを作成し、そのファイルに以下のコードを入力します。 :

このコードを使用すると、ローカルの DynamoDB インスタンスにテーブルを作成できます。コード スニペットを実行します。 FastAPI開発

DynamoDB
のローカル インスタンスが起動して実行されているので、アプリの作成を開始しましょう。
app

ディレクトリに移動して、main.py と要件の 2 つのファイルを作成します。 txt.

requirements.txt に以下を入力します:

以下のサブディレクトリを作成します:

モデル
     Pydantic Player モデル<script></script> <script></script>ルーター<script></script><script></script>      ルートが含まれています<script></script> <script></script> <script></script> <script></script>

Pydantic を使用していくつかのモデルを作成しましょう。Player モデルと UpdatePlayer モデルを使用して、追加または変更できるプレーヤー情報のデータ構造を定義します。

models サブディレクトリ内に、空の __init__.py ファイルと player.py という名前のファイルを作成し、以下のコードを入力します。

routers

サブディレクトリ内に、空の __init__.py ファイルと player.py という名前のファイルを作成し、以下のコードを入力します。

空の __init__.py ファイルを作成すると、フォルダーが Python パッケージに変わります。

app
サブディレクトリ内に main.py という名前のファイルを作成し、以下のコードの入力を開始します。

試乗 簡単なテストドライブの時間です。app

ディレクトリにいることを確認し、以下のコマンドを実行して
Uvicorn
を起動します。

アプリが起動して実行されているので、

http://127.0.0.1:8000/docs/

FastAPI Swagger Documentation に移動します。

利用可能な 6 つのエンドポイントを含む自動インタラクティブ API ドキュメントが表示されます。

プレーヤーを追加してみましょう。

POST /players
エンドポイントを選択し、
Try It out

ボタンを選択し、以下のペイロードを使用して世界最高のプレーヤー「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 スタックの内容を以下のコードに置き換えます。

デプロイを開始する前に、最後のステップが 1 つあります。app/routers ディレクトリの player.py ファイルで、local_development: bool のフラグを

False
に設定します。

iac
ディレクトリ内の仮想環境をアクティブ化し、以下のコマンドを使用して依存関係をインストールします。

cdkdeploy コマンドを使用してアプリをデプロイします。CDK Deploy FastAPI APP
デプロイが完了すると、ターミナル出力に関数 URL が表示されます。これが AWS 上の API エンドポイントです。

    ローカルのテストドライブ中に行ったように、関数 URL を使用してすべてのエンドポイントをテストします。プレーヤーを追加したら、プレーヤー データが存続しているか、それとも消滅したかを確認します。
  1. すべてが動作していることを確認するには:
  2. AWS マネジメントコンソール に移動します。
  3. DynamoDB に移動します
  4. プレイヤー テーブル
  5. を見つけます

テーブル項目の探索

を選択します

Player FC DynamoDB Table

クラウドにプレーヤー データが表示されるはずです:

?

重要: リソースをクリーンアップすることを忘れないでください。必要がなくなったら、cdk destroy コマンドを実行して、作成されたすべての AWS リソースを削除できます。 <script></script>これで、ローカルの FastAPI 開発から AWS でのサーバーレス展開までの行程が完了しました。<script></script> <script></script> <script></script>

以上がサーバーレス FastAPI 開発: AWS でのプレーヤー FC API の構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。