クイック スタート: リポジトリから Azure Container Apps へのビルドとデプロイ
この記事では、選択したプログラミング言語を使用し、マイクロサービスをビルドして、GitHub リポジトリから Azure Container Apps にデプロイする方法について説明します。 このクイック スタートでは、音楽アルバムの静的コレクションを返すバックエンド Web API サービスであるサンプル マイクロサービスを作成します。
このサンプル アプリケーションは、2 つのバージョンで利用できます。 1 つのバージョンにはコンテナーが含まれており、ソースには Dockerfile が含まれています。 もう一方のバージョンには Dockerfile がありません。 ご自分のソース コードに最も適したバージョンを選択してください。 コンテナーを初めてお使いになる場合は、上部にある [Dockerfile なし] オプションを選択してください。
Note
また、ローカル ファイルシステムからこのサンプル アプリケーションをビルドしてデプロイすることもできます。 詳細については、ローカル ソース コードからビルドし、Azure Container Apps にアプリケーションをデプロイする方法に関するページを参照してください。
次のスクリーンショットは、デプロイするアルバム 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
名前空間を登録します。
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
エンドポイントにアクセスします。
リソースをクリーンアップする
フロントエンドのデプロイ に関するチュートリアルに進まない場合は、次のコマンドを使用して、このクイックスタートで作成した Azure リソースを削除できます。
注意事項
次のコマンドを実行すると、指定されたリソース グループとそれに含まれるすべてのリソースが削除されます。 グループがこのクイックスタートの範囲外でリソースを含む場合、それは同時に削除されます。
az group delete --name $RESOURCE_GROUP
ヒント
問題がある場合は、 GitHub の Azure Container Apps リポジトリでイシューを開いて、お知らせください。
次のステップ
このクイックスタートを完了したら、チュートリアル: Azure Container Apps でのマイクロサービス間の通信 に進み、API を呼び出すフロントエンド アプリケーションをデプロイする方法を学習できます。