Pythonのライブラリ「Flask」を利用したWebアプリケーションは、Azure App Service上で動作させることができる。

今回は、Dockerコンテナを利用した、FlaskによるAzure App Service上で動作するアプリケーションを作成してみたので、その手順を共有する。

前提条件

下記サイトの手順に従って、Azure Portalのアカウントを作成済であること。
https://qiita.com/qt-luigi/items/53341070a7fd4de802f9

また、下記サイトの手順に従って、Docker Hubアカウントを作成済であること。

Docker Hubアカウントを作成しDockerイメージを保存してみたDockerイメージを保存・共有する場所のことをDockerレジストリといい、Docker公式のDockerレジストリとして、よく使われ...

やってみたこと

  1. ローカル環境でのAzure App Service動作検証
  2. Azure上でのAzure App Service動作検証
  3. Azure App Serviceログ記録の有効化

ローカル環境でのAzure App Service動作検証

ローカル環境でのAzure App Service動作検証は、Docker Desktopを起動して行える。その手順は、以下の通り。

1) git cloneコマンドで、以下のサイトから、Azure App Serviceで動作するDockerコンテナを利用したPython Flaskアプリケーションのサンプルコードを入手する。
https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart

ローカル環境でのAzure App Service動作検証_1

2) 以下のサイトに記載の、Dockerfile・.dockerignore・gunicorn.conf.pyを追加する。
https://learn.microsoft.com/ja-jp/azure/developer/python/tutorial-containerize-simple-web-app-for-app-service?tabs=web-app-flask#add-dockerfile-and-dockerignore-files

なお、DockerfileのPythonバージョンは、python:3.14.3-slim-bookwormにしている。

3) Docker Desktopを起動し、先ほど作成したDockerfileが存在するディレクトリ上で、「docker build –tag (Dockerイメージ名) .」コマンドを実行する。

<ファイル構成>
ローカル環境でのAzure App Service動作検証_3_1

「docker build –tag (Dockerイメージ名) .」コマンドを実行する。
ローカル環境でのAzure App Service動作検証_3_2

<docker buildコマンド実行前>
ローカル環境でのAzure App Service動作検証_3_3

<docker buildコマンド実行後>
ローカル環境でのAzure App Service動作検証_3_4

4) 先ほど作成したDockerfileが存在するディレクトリ上で、「docker run –detach –publish 5000:50505 (Dockerイメージ名)」コマンドを実行する。
ローカル環境でのAzure App Service動作検証_4_1

<docker runコマンド実行前>
ローカル環境でのAzure App Service動作検証_4_2

<docker runコマンド実行後>
ローカル環境でのAzure App Service動作検証_4_3

5) ブラウザを起動し、「http://localhost:5000」にアクセスすると、以下のように、Flaskアプリケーションが動作することが確認できる。
ローカル環境でのAzure App Service動作検証_5_1

名前を入力し、「Say Hello」ボタンを押下する。
ローカル環境でのAzure App Service動作検証_5_2

次画面に遷移し、「Hello (入力した名前)」が表示されることが確認できる。
ローカル環境でのAzure App Service動作検証_5_3

6) Dockerのログを確認するには、Docker Desktop Containers画面の「Name」をクリックする。
ローカル環境でのAzure App Service動作検証_6

7) 以下のように、ログ表示が確認できるが、「app.py」に記載のprint文が表示されていない。
ローカル環境でのAzure App Service動作検証_7

8) docker runコマンドで起動したDocker Containerを停止するには、Docker Desktop Containers画面の停止ボタンを押下する。
ローカル環境でのAzure App Service動作検証_8_1

Docker Containerが停止すると、以下の画面が表示される。なお、青枠の「削除」ボタンを押下すると、docker runコマンドで起動したDocker Containerが削除される。
ローカル環境でのAzure App Service動作検証_8_2

9)「app.py」に記載のprint文をログに表示できるようにするには、以下のように、Dockerfileに「ENV PYTHONUNBUFFERED=1」を追加する。

FROM python:3.14.3-slim-bookworm

# Pythonライブラリを読み込む
WORKDIR /code
COPY requirements.txt .
RUN pip3 install -r requirements.txt
COPY . .

# ログをバッファリングせず即時出力する設定を追加
ENV PYTHONUNBUFFERED=1

# Flaskアプリケーションを起動
EXPOSE 50505
ENTRYPOINT ["gunicorn", "app:app"]

10) 3)docker buildコマンドの実行~6)Dockerのログ確認まで再度実行すると、以下のように、「app.py」に記載のprint文が表示されていることが確認できる。
ローカル環境でのAzure App Service動作検証_10

エンジニアファーストバナー

Azure上でのAzure App Service動作検証

Azure上でのAzure App Service動作検証は、Azure Container RegistryにDockerイメージを配置して行える。その手順は、以下の通り。

1) 下記記事の「Azure PortalでContainer Registryの作成」に従って、Azure Container Registryを作成する。

Azure Functions上で動作するDockerコンテナを利用したPythonアプリケーションをContainer Registryに配置してみたAzure Functions上でDockerイメージを利用してPythonアプリケーションを構築する際、Dockerイメージの配置先を...

Azure Container Registryは、下記設定で作成する。
Azure上でのAzure App Service動作検証_1_1

また、以下のように、管理者ユーザーのチェックをONにする。
Azure上でのAzure App Service動作検証_1_2

2) Azure Container Registry上にDockerイメージを配置するため、「az login」コマンドを実行し、Azure環境にログインする。
Azure上でのAzure App Service動作検証_2

3)「az acr build –resource-group (リソースグループ名) –registry (コンテナレジストリ名) –image (Dockerイメージ名):(バージョン) .」コマンドを実行して、Azure Container Registry上にDockerイメージを配置する。
Azure上でのAzure App Service動作検証_3_1

Azure上でのAzure App Service動作検証_3_2

4) Azure Portalにログインし、Azure Container Registryのリポジトリを確認すると、配置したDockerイメージのリポジトリが作成されていることが確認できる。
Azure上でのAzure App Service動作検証_4_1

Azure上でのAzure App Service動作検証_4_2 Azure上でのAzure App Service動作検証_4_3

5) 作成するAzure App Serviceで指定する、App Serviceプランを作成する。そのため、Azure Portalで「App Service プラン」を選択する。
Azure上でのAzure App Service動作検証_5

6)「作成」ボタンを押下する。
Azure上でのAzure App Service動作検証_6

7) 必要事項を指定し「確認および作成」ボタンを押下する。ここでは、価格を最小にするため、価格プランは「Free F1」を選択している。
Azure上でのAzure App Service動作検証_7

8) 内容を確認後、「作成」ボタンを押下する。
Azure上でのAzure App Service動作検証_8

9) デプロイが完了すると以下の画面が表示されるため、「リソースに移動」ボタンを押下する。
Azure上でのAzure App Service動作検証_9

10) 以下のように、App Service プランの作成が確認できる。
Azure上でのAzure App Service動作検証_10

11) Dockerコンテナを利用したPython Flaskアプリケーションを配置するAzure App Serviceを作成するが、Azure Portalでの作成が上手くいかないため、コマンドで作成する。

以下のコマンドを実行し、Azure App Serviceを作成する。
az webapp create –resource-group (リソースグループ名) –plan (AppServiceプラン名) –name (AppService名) –assign-identity [system] –role AcrPull –scope /subscriptions/(サブスクリプションID)/resourceGroups/(リソースグループ名) –acr-use-identity –acr-identity [system] –container-image-name (コンテナレジストリ名).azurecr.io/(Dockerイメージ名):(バージョン)

Azure上でのAzure App Service動作検証_11_1 Azure上でのAzure App Service動作検証_11_2

12) Azureからログアウトするため、「az logout」コマンドを実行する。
Azure上でのAzure App Service動作検証_12

13) ブラウザを起動し、「https://(AppService名).azurewebsites.net」にアクセスすると、以下のように、Flaskアプリケーションが動作することが確認できる。
Azure上でのAzure App Service動作検証_13_1

名前を入力し、「Say Hello」ボタンを押下する。
Azure上でのAzure App Service動作検証_13_2

次画面に遷移し、「Hello (入力した名前)」が表示されることが確認できる。
Azure上でのAzure App Service動作検証_13_3

14) 作成したAzure App Serviceは、Azure Portal上で確認できる。
Azure上でのAzure App Service動作検証_14_1

App Service名のリンクを押下する。
Azure上でのAzure App Service動作検証_14_2

以下のように、作成したAzure App Serviceの中身の表示が確認できる。
Azure上でのAzure App Service動作検証_14_3

15)「ログストリーム」を選択すると、直近の動作ログを確認できる。
Azure上でのAzure App Service動作検証_15

【PR】「Filmora」は初心者でも本格的な動画編集ができる大変便利なツールだった「Filmora」は初心者でも使いやすい動画編集ツールで、テンプレートとして利用できるテキスト・動画・音楽などが充実していると共に、複数...

Azure App Serviceログ記録の有効化

Azure App Serviceログ記録の有効化は、Azure Portal上で実行できる。その手順は、以下の通り。

1) Azure Portal上で、作成したAzure App Serviceを開き、「App Service ログ」メニューを押下する。
Azure App Serviceログ記録の有効化_1

2)「ファイル システム」を有効化後、クォータ、リテンション期間を指定し、「保存」ボタンを押下する。
Azure App Serviceログ記録の有効化_2

3) 保存が完了すると、以下のようにメッセージが表示される。
Azure App Serviceログ記録の有効化_3

4) ブラウザを起動し、「https://(AppService名).azurewebsites.net」にアクセスし、画面操作する。
Azure App Serviceログ記録の有効化_4_1

Azure App Serviceログ記録の有効化_4_2

5)「ログストリーム」を確認した結果は、以下の通り。
Azure App Serviceログ記録の有効化_5

6) ファイルに出力されたログを確認するには、「高度なツール」を押下後、「移動」リンクを押下する。
Azure App Serviceログ記録の有効化_6

7)「Logs」メニュー選択後、「Download All Container Logs」を押下すると、ファイルに出力されたログをダウンロードできる。
Azure App Serviceログ記録の有効化_7

8) ダウンロードされた「2026_03_07_10-30-0-179_default_docker.log」に、出力されたログが確認できる。
Azure App Serviceログ記録の有効化_8

要点まとめ

  • Pythonのライブラリ「Flask」を利用したWebアプリケーションは、Dockerコンテナを利用して、Azure App Service上で動作させることができる。