pex 内部の Gunicorn を使って WebAPI を起動する¶
Python のコードと依存パッケージをまとめる pex を使い、Gunicorn と WebAPI を単一ファイルから起動する方法を紹介します。
前提とするディレクトリ構成¶
次のようなディレクトリ構成で、main.pyに WebAPI のコードがある場合を考えます。
pex のエントリーポイントはgunicornにしておき、pex ファイル名はfoo.pexとします。
起動コマンドの実行¶
エントリーポイントをgunicornに設定した状態で./foo.pex a.b.c.main:appを実行すると、main.pyのappが起動します。Pants でパッケージングした際に他のモジュールへ依存すると、内部のディレクトリ構成は変わることがあるため、pex ファイルを解凍して確認すると確実です。
config の利用¶
Gunicorn を使う際に-c {CONFIG_PATH}でコンフィグファイルを指定できます。pex 内部にコンフィグファイルを置いても参照できないので、pex の外側に配置して参照します。