Heroku で Fastapi サーバーを無料でホスト...
Fastapi プロジェクトを作成する
そのために、いくつかのpipパッケージをインストールします
pip install fastapi
本番用のASGIサーバーが必要です
ここでは
uvicorn
を使用しますpip install uvicron
gunicorn
という名前の別のパッケージが必要ですpip install gunicorn
コードを書く
ここで、Python コード用のファイルを作成する必要があります.
main.py
という名前のファイルを作成し、次のようなコードを記述します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: Optional[str] = None):
return {"item_id": item_id, "q": q}
コードを実行する
uvicorn main:app --reload
これにより、アプリが localhost で実行され、デフォルトのポートは 8000 になります.ここで、
main
はファイル名で、app
は fastapi オブジェクトです.次は、ホスティング用のいくつかのものを追加します.
requirements.txt を作成する
ファイルを作成するには、次を実行します.
pip freeze > requirements.txt
このようなファイルとコンテンツが作成されます
anyio==3.4.0
asgiref==3.4.1
certifi==2021.10.8
charset-normalizer==2.0.9
click==8.0.3
fastapi==0.70.1
gunicorn==20.1.0
h11==0.12.0
idna==3.3
pydantic==1.8.2
requests==2.26.0
sniffio==1.2.0
starlette==0.16.0
typing-extensions==4.0.1
urllib3==1.26.7
uvicorn==0.16.0
アプリを実行するために必要なパッケージのリストです.
プロファイルの作成
拡張子なしで
Procfile
という名前のファイルを作成し、以下のコードを貼り付けますweb: gunicorn -w 3 -k uvicorn.workers.UvicornWorker main:app
これには、アプリを実行するための実行スクリプトが含まれています
ここで main は python ファイル名で、app は fastapi オブジェクトです.変えられますので..
これで、アプリをデプロイする準備が整いました.
Github リポジトリを作成し、そこにコードをプッシュします
heroku ダッシュボードのそれぞれの github リポジトリにリンクされた新しい heroku アプリを作成します.
bulid が heroku で終了したら、
your-app-url/docs
に移動して、API ドキュメントを取得します.Reference
この問題について(Heroku で Fastapi サーバーを無料でホスト...), 我々は、より多くの情報をここで見つけました https://dev.to/devpenzil/host-your-fastapi-server-on-heroku-for-free-30apテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol