手動デプロイ¶
FastAPI を手動でデプロイすることもできます。
以下の様なASGI対応のサーバをインストールする必要があります:
- Uvicorn, uvloopとhttptoolsを基にした高速なASGIサーバ。
$ pip install "uvicorn[standard]"
---> 100%
豆知識
standard
を加えることで、Uvicornがインストールされ、いくつかの推奨される依存関係を利用するようになります。
これには、asyncio
の高性能な完全互換品である uvloop
が含まれ、並行処理のパフォーマンスが大幅に向上します。
そして、チュートリアルと同様な方法でアプリケーションを起動して下さい。ただし、以下の様に--reload
オプションは使用しないで下さい:
$ uvicorn main:app --host 0.0.0.0 --port 80
<span style="color: green;">INFO</span>: Uvicorn running on http://0.0.0.0:80 (Press CTRL+C to quit)
$ hypercorn main:app --bind 0.0.0.0:80
Running on 0.0.0.0:8080 over http (CTRL + C to quit)
停止した場合に自動的に再起動させるツールを設定したいかもしれません。
さらに、GunicornをインストールしてUvicornのマネージャーとして使用したり、複数のワーカーでHypercornを使用したいかもしれません。
ワーカー数などの微調整も行いたいかもしれません。
しかしこれら全てをやろうとすると、自動的にこれらを行うDockerイメージを使う方が楽かもしれません。