Azure Python

Azure Functions上で動作するDockerコンテナを利用したPythonアプリケーションをContainer Registryに配置してみた

Azure Functions上でDockerイメージを利用してPythonアプリケーションを構築する際、Dockerイメージの配置先を(Docker Hubでなく)Container Registryにすることもできる。

今回は、DockerイメージをContainer Registryに配置してみたので、その手順を共有する。

前提条件

下記サイトの手順に従って、Azure Functions上で動作するDockerコンテナを利用したPythonアプリケーションの作成が完了していること。

Azure Functions上で動作するDockerコンテナを利用したPythonアプリケーションを作成してみた「Azure Functions」上でPythonアプリケーションを構築できるが、その際に、Dockerイメージを利用することもできる。...

やってみたこと

  1. Azure PortalでContainer Registryの作成
  2. Container RegistryへのDockerイメージの保存
  3. Azure FunctionsへのDockerイメージ反映

Azure PortalでContainer Registryの作成

Container Registryの作成は、Azure Portal上で行える。その手順は、以下の通り。

1) Azure Portalにログインし、「Container Registry」を検索し選択する。
Azure PortalでContainer Registryの作成_1

2) Container Registryを作成するための、以下の画面が表示される。
Azure PortalでContainer Registryの作成_2

3) 各項目を入力後、「ネットワーク」タブを選択する。
Azure PortalでContainer Registryの作成_3

4) そのまま「暗号化」タブを選択する。
Azure PortalでContainer Registryの作成_4

5) そのまま「確認および作成」ボタンを押下する。
Azure PortalでContainer Registryの作成_5

6) 作成するContainer Registryの内容を確認し、「作成」ボタンを押下する。
Azure PortalでContainer Registryの作成_6

7) デプロイ中の画面は、以下の通り。
Azure PortalでContainer Registryの作成_7

8) 完了すると以下の画面が表示されるため、「リソースに移動」ボタンを押下する。
Azure PortalでContainer Registryの作成_8

9) Container Registryが作成され、以下の画面が表示されることが確認できる。ここで管理者ユーザーを有効にするため、「設定」メニューの「アクセスキー」を押下する。
Azure PortalでContainer Registryの作成_9

10)「管理者ユーザー」のチェックをオンにする。
Azure PortalでContainer Registryの作成_10_1

Azure PortalでContainer Registryの作成_10_2

11) Dockerイメージを反映する方法を確認するため、「イメージをプッシュする」ボタンを押下する。
Azure PortalでContainer Registryの作成_11

12) 以下のように、Dockerイメージを反映する方法が確認できる。
Azure PortalでContainer Registryの作成_12



削除または保存していないWordドキュメントの復元方法【4DDiG Windowsデータ復元】ワード(Word)データ等のファイルを誤って削除してしまった場合は、通常はデータの復元ができませんが、4DDiGというソフトウェアを利用...

Azure PortalでContainer Registryの作成

Azure Functionsから作成したDockerイメージを参照できるよう、DockerイメージをContainer Registryに保存する。その手順は、以下の通り。

1) 前提条件の記事の「function_app.py」に、以下赤枠の「Updated!!」という文言を追加する。
Container RegistryへのDockerイメージの保存_1_1

なお、ソースコードの構成は、以下の通り。
Container RegistryへのDockerイメージの保存_1_2

2) Azure上にAzure Functionsアプリをデプロイするため、「az login –tenant (既定のディレクトリのテナントID)」コマンドを実行し、Azure環境にログインする。
Container RegistryへのDockerイメージの保存_2

3) 以下の画面が表示されるため、アカウントを選択し「続行」ボタンを押下する。
Container RegistryへのDockerイメージの保存_3

4) そのまま、Enterキーを押下する。
Container RegistryへのDockerイメージの保存_4

5) 以下のように、Azure環境にログインされたことが確認できる。
Container RegistryへのDockerイメージの保存_5

6) Docker Desktopを起動し、「az acr login –name funccontainer」コマンドを実行する。
Container RegistryへのDockerイメージの保存_6

7)「docker build –tag /azurefunctionsimage:v1.0.0 .」コマンドを実行し、Dockerコンテナを利用したPythonによるAzure FunctionsアプリのDockerイメージを作成する。
Container RegistryへのDockerイメージの保存_7

8)「docker run -p 8081:80 -it /azurefunctionsimage:v1.0.0」コマンドを実行すると、作成したDockerイメージからDockerコンテナを起動できる。
Container RegistryへのDockerイメージの保存_8_1

Container RegistryへのDockerイメージの保存_8_2

9) ブラウザ上で「http://localhost:8081/api/HttpExample」にアクセスすると、以下のように、function_app.pyで定義していたHttpResponseが返却されることが確認できる。なお、8081は、dockerコマンド起動時に利用したポート番号を表している。
Container RegistryへのDockerイメージの保存_9

10)「docker push <Container Registry名>.azurecr.io/azurefunctionsimage:v1.0.0」コマンドを実行すると、作成したDockerイメージがContainer Registryに保存される。
Container RegistryへのDockerイメージの保存_10_1

なお、上記コマンド実行中は、以下のような表示となる。
Container RegistryへのDockerイメージの保存_10_2

11) Dockerイメージ配置後にContainer Registryを確認すると、以下のように、作成したDockerイメージがContainer Registryに保存されたことが確認できる。
Container RegistryへのDockerイメージの保存_11_1

Container RegistryへのDockerイメージの保存_11_2 Container RegistryへのDockerイメージの保存_11_3



サラリーマン型フリーランスSEという働き方でお金の不安を解消しよう先日、「サラリーマン型フリーランスSE」という働き方を紹介するYouTube動画を視聴しましたので、その内容をご紹介します。 「サ...

Azure FunctionsへのDockerイメージ反映

Azure FunctionsへのDockerイメージ反映は、Azure Portal上で行える。その手順は、以下の通り。

1) Dockerイメージを配置するAzure Functionsを開き、「設定」の「構成」メニューを押下する。
Azure FunctionsへのDockerイメージ反映_1

2) イメージのソースで「Azure Container Registry」を選択する。
Azure FunctionsへのDockerイメージ反映_2

3) レジストリ・イメージ・イメージタグを順次選択した後で、「保存」ボタンを押下する。
Azure FunctionsへのDockerイメージ反映_3_1

Azure FunctionsへのDockerイメージ反映_3_2

4) 保存が完了すると、以下のような完了メッセージが表示されることが確認できる。
Azure FunctionsへのDockerイメージ反映_4

5) Azure Functionsの動作確認を行うURLにアクセスすると、以下のように、function_app.pyで定義していたHttpResponseに「Updated!! 」を追加し返却されることが確認できる。
Azure FunctionsへのDockerイメージ反映_5

要点まとめ

  • Azure Functions上でDockerイメージを利用してPythonアプリケーションを構築する際、Dockerイメージの配置先をContainer Registryにすることもできる。