こちらの記事は投稿時点の情報です。
最新情報は公式ドキュメントMicrosoft Learnでご確認お願いいたします。
Microsoft Japan - Azure Developer Platform Team の D̷ELL と申します。
本日は Azure App Service で FastAPI をホスティングする手順の紹介です。
Azure App Service は、Web アプリケーション、REST API、およびモバイル バックエンドをホストするための HTTP ベースのサービスです。様々なプログラムを、Azure の恩恵を受けつつ、手軽にホスティングすることができます。
生成AI関係のアプリを開発していると、Python でアプリを構築することが多いと思います。
今回は、FastAPI で構築したアプリを Azure 上で安定稼働させるためのクイックスタートを試してみます。
0. リファレンス
公式ドキュメント
リポジトリ
1. リポジトリの準備
CI/CDを行うためのリポジトリを作成します。
先ほどの GitHub リポジトリ「msdocs-python-fastapi-webapp-quickstart」を、ご自身の GitHub アカウントにForkしてください。
2. App Serviceの作成
Azure Portal に移動し、App Service のページに遷移します。
Azure Portal の画面上部の検索窓に「App Service」と入力し、App Service を選択してください。
https://portal.azure.com/#home
Webアプリを作成していきましょう。
左上の[作成] -> [Web アプリ] を選択し、各種パラメータを設定していきます。
- ランタイムスタック:[Python 3.10]
- 地域:[Japan East]
- Linuxプラン:(新規)
- 価格プラン: [Free F1]
他の項目はデフォルトの値で構いません。この設定で、アプリを作成していきます。
現在、Windows 上の Python はサポートされていません。Linux プランを選択してください。
言語ラインタイムのサポートポリシー
App Service プラン
App Service の作成が完了しました。この状態で [既定のドメイン]にアクセスすると、サンプルページが表示されていると思います。
3. CI/CD の設定
次に、CI/CDの設定を行います。[デプロイメント] ブレードから、[デプロイセンター]を選択します。
以下の通り設定を行い、GitHubリポジトリと連携します。
- ソース:[GitHub]
- 組織:[任意の組織]
- リポジトリ:[msdocs-python-fastapi-webapp-quickstart] ※forkしている場合
- ブランチ:[main]
その他の項目はデフォルトで構いません。設定が終わったら [保存] してください。
なお、ページ下部の [ワークフローの作成] - [ファイルのプレビュー] から、自動生成されたワークフローファイルを閲覧することも可能です。
保存後、[デプロイセンター] を確認すると、デプロイが進捗していることがわかります。
[概要] で、[前回のデプロイ] に ✅ が表示されるまで待ちましょう。これで、CI/CDの設定は完了です。
4. アプリの設定
CI/CDの設定は完了しましたが、この状態で[既定のドメイン]にアクセスしても、まだサンプルページが表示されていると思います。これは、デプロイした FastAPI アプリを起動するように設定がされていないためです。
デフォルトの待ち受けポートを、FastAPIに合わせて変更します。
[設定] ブレードから [環境変数] にアクセスします。
以下の環境変数を [追加] します。
- [WEBSITES_PORT]:[8000]
次に、App Service起動時に実行するファイルを指定します。
今回は、Startup.sh に依存関係の解決とサーバーの起動が設定されているため、該当のシェルを指定します。
[設定] ブレードから [構成] にアクセスし、スタートアップコマンドを指定して [保存] します。
- スタートアップコマンド:[startup.sh]
設定後、[概要] ページにアクセスして、 [再起動] を実施してください。
4. 動作確認
[既定のドメイン]にアクセスすると、[msdocs-python-fastapi-webapp-quickstart] の画面が表示され、FastAPIが動作していることが確認できます。
5. まとめ
このように、Azure App Service では Python アプリを簡単にホストすることが可能です。
FastAPI や Gradio を用いたアプリケーションのホストにも利用できますね。
HuggingFace Spaces でも Gradio アプリは手軽にホスティング可能ですが、パブリックに公開したくない場合は App Service が選択肢に入ってくると思います。ぜひ、ご利用ください。
最後までご覧いただき、ありがとうございました。
最後に
*本稿は、個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、いかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください。