以前、App ServiceにStreamlitのアプリをデプロイする方法を記事にしました。
今回は、同一App Serviceプラン上に複数のStreamlitアプリをデプロイする方法をメモしておきます。
Azure App Serviceの料金はApp Serviceプランごとにかかります。同一のApp Serviceプラン上で複数のWebアプリを実行しても、料金は変わらないため、使用頻度の低いアプリなどは同一App Serviceプランでホスティングすることを検討してもよいと思います。
『GPT-4×StreamlitアプリをAzure App Serviceにデプロイ』と同様の方法で、同一のApp Serviceプランを指定し、複数のWebアプリを作成します。
注意すべき点は、スタートアップコマンドにおいて、環境変数PORT
を使用して起動します。
以下のとおりです。
python -m streamlit run main.py --server.port $PORT --server.address 0.0.0.0
これにより、ポート競合を回避することができます。
Azure App Serviceなどでアプリケーションが起動されると、プラットフォームはアプリケーションに対してポート番号を割り当てます。そのポート番号は環境変数 $PORT に設定されます。Streamlitアプリケーションは、この環境変数を参照して、指定されたポート番号でリッスンします。