FastAPI
FastAPIを使用してSquadbaseの機能を活用する方法を学びます。
FastAPIは、PythonでシンプルなAPIを作成するためのフレームワークです。高速なパフォーマンスと軽量で柔軟性の高い設計を備えており、モダンなWeb APIの開発に最適です。
SquadbaseはFastAPIアプリケーションのデリバリーにおいて、以下のような機能・運用を実現します。
- Githubリポジトリから自動的なクラウド環境へのデプロイ
- 組み込みのAPI Key認証
- ログモニタリング
リソース
FastAPIでのアプリ開発に役立つリソースを紹介します
FastAPIアプリを新規に作成する
本項では、Squadbaseチームのおすすめとして、uvを用いてFastAPIアプリを新規に作成する方法を紹介します。
まず、プロジェクトを初期化して、依存パッケージをインストールします。
uv init my-fastapi-app
cd my-fastapi-app
uv add fastapi uvicorn
続いて、FastAPIでAPIを実装するファイルを作成します。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
このFastAPIアプリを実行するには、以下のコマンドを実行します。
uv run uvicorn main:app --reload
これで、FastAPIアプリを開発する準備が整いました!🎉
以下を実行して、APIが正常に動作することを確認してみましょう。
curl http://127.0.0.1:8000/
FastAPIアプリに関する詳しい情報は、FastAPI公式ドキュメント をご覧ください。
Github連携を用いてデプロイする
squadbase.ymlを作成する
プロジェクトのコードベースのルートに squadbase.yml を作成します。たとえば、main.pyとpy_project.tomlがある場合は、以下のようになります。
例として、最もシンプルな squadbase.yml の内容は以下の通りです。
# squadbase.yml
version: '1'
build:
framework: fastapi
runtime: python3.11 # Supported: python3.9, python3.10, python3.11, python3.12, python3.13
package_manager: uv # Supported: pip, poetry, uv
entrypoint: main:app
squadbase.ymlのカスタマイズについては、こちらをご覧ください。
OSレベルのパッケージのインストールなどデプロイ環境をカスタマイズしたい場合や、ビルドされるDockerfileを確認したい場合はこちらをご覧ください。
GithubリポジトリをSquadbaseにインポートする
Squadbaseのダッシュボードのホーム画面から、Githubリポジトリをインポートします。インポートが完了すると、自動的にデプロイが開始されます。
プッシュしてデプロイ
アプリに変更を加えて、Githubリポジトリにプッシュしてデプロイします。プッシュが完了すると、自動的に新しいバージョンのデプロイが開始されます。
ログモニタリング
Squadbaseは、デプロイされたアプリのログを収集し、ログモニタリングを提供します。ログモニタリングを利用することで、アプリのデプロイやデプロイのバージョンごとのログを確認することができます。