FastAPIで異なるポートを使用する方法

FastAPIとは

FastAPIは、Pythonの非常に高速な(高性能)、使いやすい、モダンで使いやすい、高速(高性能)なWebフレームワークです。これは、Python 3.6以降の型ヒントを使用してAPIを構築するためのものです。

FastAPIは、Starletteのパフォーマンスを提供し、Pydanticのデータバリデーションを使用します。これにより、コードの品質と効率性が向上します。

FastAPIの主な特徴は次のとおりです:
高速: NodeJSやGoと同等のパフォーマンスを持つ非常に高速なフレームワークです。
高速なコーディング: 開発者の生産性を2〜3倍に向上させ、バグを大幅に減らします。
少ないバグ: システムエディタの支援を受けて、バグを大幅に減らします。
直感的: 素晴らしいエディタのサポート。自動補完がどこでも機能します。これにより、開発時間が大幅に短縮されます。
簡単: 高度に直感的で使いやすい設計。ドキュメンテーションを読む時間を大幅に短縮します。
短い: コードの重複を最小限に抑えます。各パラメーターの複数の機能。少ないバグ。
堅牢: プロダクションでの使用を目的としたコード。自動対話式ドキュメンテーション。
基準に基づく: OpenAPI(以前はSwagger)とJSONスキーマに基づいています。
Pythonic: デコレータを使用した非常にPythonicなAPI(FastAPIはStarletteとPydanticの上に構築されています)。新しいシンタックスを学ぶ必要はありません。Pythonの知識だけで十分です。

これらの特性により、FastAPIは現代のWebアプリケーションとマイクロサービスの開発に非常に適しています。

異なるポートでのFastAPIの実行

FastAPIを異なるポートで実行する方法は非常に簡単です。デフォルトでは、FastAPIはポート8000で実行されますが、異なるポートを指定してFastAPIを実行することも可能です。

FastAPIを実行するためには、通常、UvicornというASGIサーバーが使用されます。Uvicornのコマンドラインインターフェースを使用して、FastAPIアプリケーションを異なるポートで実行することができます。

以下に、FastAPIをポート8080で実行するためのコマンドを示します:

uvicorn main:app --port 8080

このコマンドでは、main:appはFastAPIアプリケーションを含むPythonファイル(main.py)と、その中のFastAPIアプリケーションオブジェクト(app)を指します。--port 8080はUvicornにポート8080でアプリケーションを実行するように指示します。

この方法で、FastAPIアプリケーションを任意のポートで実行することができます。ただし、ポート番号は1024以上65535以下の範囲である必要があります。これらの範囲外のポート番号は、特別な権限を必要とするか、または予約されている可能性があります。

Uvicornを使用したFastAPIの設定

FastAPIは、UvicornというASGIサーバーを使用して実行されます。Uvicornは、非常に高速で、PythonのASGI(Asynchronous Server Gateway Interface)仕様に準拠したサーバーです。これにより、FastAPIは非同期処理をサポートし、非常に高速なパフォーマンスを提供します。

FastAPIアプリケーションをUvicornで実行するための基本的なコマンドは次のとおりです:

uvicorn main:app

ここで、mainはFastAPIアプリケーションが定義されているPythonファイル(main.py)の名前で、appはそのファイル内のFastAPIアプリケーションオブジェクトの名前です。

Uvicornには、FastAPIアプリケーションの設定をカスタマイズするためのさまざまなオプションがあります。例えば、--portオプションを使用してアプリケーションを実行するポートを指定することができます:

uvicorn main:app --port 8080

また、--reloadオプションを使用して、開発中にソースコードの変更を自動的に反映させることもできます:

uvicorn main:app --reload

これらのオプションを組み合わせて使用することで、FastAPIアプリケーションの設定を柔軟にカスタマイズすることができます。

複数のポートでのFastAPIの運用

FastAPIは、複数のポートで同時に運用することも可能です。これは、異なるサービスやアプリケーションが異なるポートで動作する必要がある場合や、ロードバランシングやリバースプロキシを使用して複数のインスタンスを運用する場合などに有用です。

FastAPIを複数のポートで運用するためには、各ポートでFastAPIアプリケーションを実行するためのUvicornのインスタンスを複数起動する必要があります。これは、各Uvicornのインスタンスが独立して動作し、それぞれが異なるポートでFastAPIアプリケーションをホストするためです。

以下に、FastAPIをポート8080と8081で同時に運用するためのコマンドを示します:

uvicorn main:app --port 8080
uvicorn main:app --port 8081

ただし、これらのコマンドはそれぞれ異なるターミナルセッションで実行する必要があります。また、これらのコマンドは同時に実行する必要があります。

この方法で、FastAPIアプリケーションを複数のポートで同時に運用することができます。ただし、各ポートでの運用にはそれぞれのリソース(CPU、メモリなど)が必要となりますので、システムのリソースを適切に管理することが重要です。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です