Skip to main content
Python言語で作成されたFastAPIアプリケーションのデプロイガイドです。

事前準備と確認事項

対応Pythonバージョン

  • FastAPIは最低でもPython 3.7以上が必要です。
プロジェクト設定ファイル(requirements.txt など)に記載されたPythonバージョンとデプロイ設定時に選択したバージョンが一致しない場合、ビルドやランタイムエラーが発生する可能性があります。

テンプレートとリポジトリの選択

ダッシュボードの または ⌘ + K で生成されるデプロイモーダルで Python テンプレートを選択し、続くドロップダウンメニューから連携されたGitHubアカウントのリポジトリを選択するか、Git URLタブでGitリポジトリURLを入力してください。

デプロイ設定値を入力

次の各項目にサービスをデプロイするための設定値を入力してください。
  • バージョン
  • 環境変数
  • ポート番号: 8000(デフォルト値)
  • Start Command: uvicorn main:app --host=0.0.0.0 --port=8000(デフォルト値)
  • Health Check: コンテナの状態を検証するエンドポイント
Start Commandでコマンドを入力する際、uvicornの実行引数は以下を参考にソースに合わせて修正してください。
uvicorn main:app --host=0.0.0.0 --port=8000
[例]
main.pyで myapi=FastAPI() としてオブジェクトを割り当てている場合
uvicorn main:myapi --host=0.0.0.0 --port=8000
  • Build Variables: コンテナイメージビルド時に含めるべき変数
  • Embedded node.js: プロジェクト内でビルドが必要な Node.js バージョン
  • Install command: Python パッケージインストールコマンド
  • Pre start Command: Start Command 実行前に実行される事前コマンド
  • Update strategy
    • Rolling Update : 新バージョンデプロイ後、既存ポッド終了。可用リソース確保必要
    • Recreate : 既存ポッドを終了後、新バージョンを作成・起動。ダウンタイム発生

リソース設定とデプロイ

  • リソースタイプ : オンデマンドとスポットリソース から選択
  • CPU:サービスで利用可能なvCPUの上限を設定。最小構成時は0.1 vCPUを割り当て
  • メモリ : サービスが使用するメモリリソースの最大値を設定
  • レプリカ:設定した数に応じサービスを水平スケーリングし、負荷分散と可用性確保
  • デプロイ : デプロイをクリック
デプロイが完了したらプレビュードメインを通じてブラウザでウェブページを確認したり、APIツールを使用してリクエストを送信できます。
リソース制限によりデプロイできない場合は、スペースとリソースの管理ページを参照してスペースにリソースを追加してください。

FastAPI Docs
I