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

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

Jan 11, 2025 pm 04:09 PM

シンプルで面白くてモダンなものを構築する機会が久しぶりにありました。 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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python:ゲーム、GUIなど Python:ゲーム、GUIなど Apr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Python vs. C:曲線と使いやすさの学習 Python vs. C:曲線と使いやすさの学習 Apr 19, 2025 am 12:20 AM

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

Pythonと時間:勉強時間を最大限に活用する Pythonと時間:勉強時間を最大限に活用する Apr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python vs. C:パフォーマンスと効率の探索 Python vs. C:パフォーマンスと効率の探索 Apr 18, 2025 am 12:20 AM

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。

Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか? Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか? Apr 27, 2025 am 12:03 AM

PythonListSarePartOfThestAndardarenot.liestareBuilting-in、versatile、forStoringCollectionsのpythonlistarepart。

Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Pythonの学習:2時間の毎日の研究で十分ですか? Pythonの学習:2時間の毎日の研究で十分ですか? Apr 18, 2025 am 12:22 AM

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Python vs. C:重要な違​​いを理解します Python vs. C:重要な違​​いを理解します Apr 21, 2025 am 12:18 AM

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

See all articles