クイック スタート: リポジトリから Azure Container Apps へのビルドとデプロイ

この記事では、選択したプログラミング言語を使用し、マイクロサービスをビルドして、GitHub リポジトリから Azure Container Apps にデプロイする方法について説明します。 このクイック スタートでは、音楽アルバムの静的コレクションを返すバックエンド Web API サービスであるサンプル マイクロサービスを作成します。

このサンプル アプリケーションは、2 つのバージョンで利用できます。 1 つのバージョンにはコンテナーが含まれており、ソースには Dockerfile が含まれています。 もう一方のバージョンには Dockerfile がありません。 ご自分のソース コードに最も適したバージョンを選択してください。 コンテナーを初めてお使いになる場合は、上部にある [Dockerfile なし] オプションを選択してください。

Note

また、ローカル ファイルシステムからこのサンプル アプリケーションをビルドしてデプロイすることもできます。 詳細については、ローカル ソース コードからビルドし、Azure Container Apps にアプリケーションをデプロイする方法に関するページを参照してください。

次のスクリーンショットは、デプロイするアルバム APIサービス の出力を示しています。

アルバム API エンドポイントからの応答のスクリーンショット。

前提条件

このプロジェクトを完了するには、次の項目が必要です:

要件 手順
Azure アカウント お持ちでない場合は、無料のアカウントを作成してください。 続行するには、Azure サブスクリプションの "共同作成者" または "所有者" のアクセス許可が必要です。

詳細については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。
GitHub アカウント 1 つ無料で取得できます。
git git をインストールします
Azure CLI Azure CLI をインストールします。

セットアップ

CLI から Azure にサインインするには、次のコマンドを実行し、プロンプトに従って認証プロセスを完了します。

az login

最新バージョンの CLI を実行していることを確認するには、upgrade コマンドを実行します。

az upgrade

次に、CLI 用の Azure Container Apps 拡張機能をインストールまたは更新します。

Azure CLI で az containerapp コマンドを実行したとき、または Azure PowerShell で Az.App モジュールからコマンドレットを実行したときに、パラメーターの不足に関するエラーが表示される場合は、最新バージョンの Azure Container Apps 拡張機能がインストールされていることを確認してください。

az extension add --name containerapp --upgrade

Note

2024 年 5 月以降、Azure CLI 拡張機能では、既定でプレビュー機能が有効になりません。 Container Apps のプレビュー機能にアクセスするには、--allow-preview true を使用して Container Apps 拡張機能をインストールします。

az extension add --name containerapp --upgrade --allow-preview true

最新の拡張機能またはモジュールがインストールされたので、Microsoft.App および Microsoft.OperationalInsights 名前空間を登録します。

Note

Azure Container Apps リソースは、Microsoft.Web 名前空間から Microsoft.App 名前空間に移行されました。 詳細については、「2022 年 3 月に Microsoft.Web から Microsoft.App に名前空間を移行する」を参照してください。

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

環境変数を作成する

Azure CLI のセットアップが完了したところで、この記事全体で使用される環境変数を定義できます。

bash シェルで次の変数を定義します。

export RESOURCE_GROUP="album-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-album-containerapps"
export API_NAME="album-api"
export GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"

このコマンドを実行する前に、必ず <YOUR_GITHUB_USERNAME> を GitHub ユーザー名に置き換えてください。

次に、一意のコンテナー レジストリ名を定義します。

export ACR_NAME="acaalbums"$GITHUB_USERNAME

GitHub リポジトリを準備する

ブラウザー ウィンドウで、好みの言語の GitHub リポジトリに移動し、リポジトリをフォークします。

アルバム API リポジトリの上部にある [フォーク] ボタンを選択して、リポジトリを自分のアカウントにフォークします。 次の手順で使用するため、リポジトリの URL をコピーしてください。

ブラウザー ウィンドウで、好みの言語の GitHub リポジトリに移動し、ブランチも含めてリポジトリをフォークします。

アルバム API リポジトリの上部にある [フォーク] ボタンを選択して、リポジトリを自分のアカウントにフォークします。 [main ブランチのみコピー] をオフにして、buildpack ブランチもフォークしてください。


コンテナーアプリ をビルドしてデプロイする

containerapp up コマンドを使用して、フォークされた GitHub リポジトリから最初のコンテナー アプリを ビルドしてデプロイします。 このコマンドは次の操作を行います:

  • リソース グループの作成
  • Container Apps 環境を Log Analytics ワークスペースと作成する
  • Azure Container Registry を作成する
  • コンテナー アプリをビルドしてデプロイするための GitHub Action ワークフローを作成する
  • リソース グループを作成する
  • Container Apps 環境を Log Analytics ワークスペースと作成する
  • 環境の一部として既定のレジストリを自動的に作成する
  • コンテナー アプリをビルドしてデプロイするための GitHub Action ワークフローを作成する

新しいコードをリポジトリにプッシュすると、GitHub アクションによって次の処理が行われます。

  • コンテナー イメージをビルドして Azure Container Registry にプッシュする
  • 作成されたコンテナー アプリにコンテナー イメージをデプロイする

up コマンドは、リポジトリのルートにある Docker ファイルを使用してコンテナー イメージをビルドします。 Docker ファイルの EXPOSE 命令によって、ターゲット ポートが定義されます。 コンテナー アプリをビルドするために Docker ファイルは必要ありません。

  • 言語とランタイムを自動的に検出する
  • 適切な Buildpack を使用してイメージをビルドする
  • イメージを Azure Container Apps の既定のレジストリにプッシュする

コンテナー アプリは、イングレス トラフィックにアクセスできる必要があります。 受信要求をリッスンするためにポート 8080 を公開してください。

次のコマンドで、<YOUR_GITHUB_REPOSITORY_NAME>https://github.com/<OWNER>/<REPOSITORY-NAME> または <OWNER>/<REPOSITORY-NAME> のフォームで GitHub リポジトリ名に置き換えます。

次のコマンドで、<YOUR_GITHUB_REPOSITORY_NAME>https://github.com/<OWNER>/<REPOSITORY-NAME> または <OWNER>/<REPOSITORY-NAME> のフォームで GitHub リポジトリ名に置き換えます。 --branch buildpack オプションを使用して、Dockerfile を使用せずにサンプル ソースをポイントします。

az containerapp up \
  --name $API_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --context-path ./src \
  --repo <YOUR_GITHUB_REPOSITORY_NAME>
az containerapp up \
  --name $API_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --context-path ./src \
  --ingress external \
  --target-port 8080 \
  --repo <YOUR_GITHUB_REPOSITORY_NAME>
  --branch buildpack
  --

ターミナルに表示される URL とユーザー コードを使用して、ブラウザーで GitHub デバイスのアクティブ化ページに移動し、ページにユーザー コードを入力します。 プロンプトに従って、Azure CLI が GitHub リポジトリにアクセスすることを承認します。

up コマンドにより、リポジトリの .github/workflows フォルダーに GitHub アクション ワークフローが作成されます。 リポジトリに変更をプッシュすると、コンテナー アプリをビルドしてデプロイするワークフローがトリガーされます。


デプロイの確認

containerapp up により返されたドメイン名を Web ブラウザーにコピーします。 Web ブラウザーから、URL の /albums エンドポイントにアクセスします。

アルバム API エンドポイントからの応答のスクリーンショット。

リソースをクリーンアップする

フロントエンドのデプロイ に関するチュートリアルに進まない場合は、次のコマンドを使用して、このクイックスタートで作成した Azure リソースを削除できます。

注意事項

次のコマンドを実行すると、指定されたリソース グループとそれに含まれるすべてのリソースが削除されます。 グループがこのクイックスタートの範囲外でリソースを含む場合、それは同時に削除されます。

az group delete --name $RESOURCE_GROUP

ヒント

問題がある場合は、 GitHub の Azure Container Apps リポジトリでイシューを開いて、お知らせください。

次のステップ

このクイックスタートを完了したら、チュートリアル: Azure Container Apps でのマイクロサービス間の通信 に進み、API を呼び出すフロントエンド アプリケーションをデプロイする方法を学習できます。