Skip to content

Latest commit

 

History

History
74 lines (42 loc) · 2.35 KB

manually.md

File metadata and controls

74 lines (42 loc) · 2.35 KB

手動デプロイ

FastAPI を手動でデプロイすることもできます。

以下の様なASGI対応のサーバをインストールする必要があります:

=== "Uvicorn"

* <a href="https://www.uvicorn.org/" class="external-link" target="_blank">Uvicorn</a>, uvloopとhttptoolsを基にした高速なASGIサーバ。

<div class="termy">

```console
$ pip install "uvicorn[standard]"

---> 100%
```

</div>

!!! tip "豆知識" standard を加えることで、Uvicornがインストールされ、いくつかの推奨される依存関係を利用するようになります。

これには、`asyncio` の高性能な完全互換品である `uvloop` が含まれ、並行処理のパフォーマンスが大幅に向上します。

=== "Hypercorn"

* <a href="https://gitlab.com/pgjones/hypercorn" class="external-link" target="_blank">Hypercorn</a>, HTTP/2にも対応しているASGIサーバ。

<div class="termy">

```console
$ pip install hypercorn

---> 100%
```

</div>

...または、これら以外のASGIサーバ。

そして、チュートリアルと同様な方法でアプリケーションを起動して下さい。ただし、以下の様に--reload オプションは使用しないで下さい:

=== "Uvicorn"

<div class="termy">

```console
$ 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)
```

</div>

=== "Hypercorn"

<div class="termy">

```console
$ hypercorn main:app --bind 0.0.0.0:80

Running on 0.0.0.0:8080 over http (CTRL + C to quit)
```

</div>

停止した場合に自動的に再起動させるツールを設定したいかもしれません。

さらに、GunicornをインストールしてUvicornのマネージャーとして使用したり、複数のワーカーでHypercornを使用したいかもしれません。

ワーカー数などの微調整も行いたいかもしれません。

しかしこれら全てをやろうとすると、自動的にこれらを行うDockerイメージを使う方が楽かもしれません。