クイック スタート: Azure Container Apps にコードをデプロイする

この記事では、選択したプログラミング言語を使用し、マイクロサービスをビルドして、ソース リポジトリから Azure Container Apps にデプロイする方法について説明します。

このクイック スタートは、Azure Container Apps のコア機能を使用する方法について説明する一連の記事の 1 つ目です。 最初の手順では、音楽アルバムの静的コレクションを返すバックエンド Web API サービスを作成します。

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

Screenshot of response from albums API endpoint.

前提条件

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

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

詳細については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。
GitHub アカウント 無料試用版にサインアップします。
git git をインストールします
Azure CLI Azure CLI をインストールします。
要件 手順
Azure アカウント お持ちでない場合は、無料のアカウントを作成してください。 続行するには、Azure サブスクリプションの "共同作成者" または "所有者" のアクセス許可が必要です。 詳細については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。
GitHub アカウント 無料試用版にサインアップします。
git git をインストールします
Azure CLI Azure CLI をインストールします。
Docker Desktop Docker には、macOSWindowsLinux 上で Docker 環境の構成を行うインストーラが用意されています。

コマンド プロンプトに「docker」と入力して、Docker が実行していることを確認します。

セットアップ

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

az login

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

az upgrade

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

az extension add --name containerapp --upgrade

まだ登録していない場合は、Azure サブスクリプションに Microsoft.App 名前空間と Microsoft.OperationalInsights 名前空間を登録します。

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

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

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

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

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

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

ACR_NAME="acaalbums"$GITHUB_USERNAME

GitHub リポジトリを準備する

目的の言語のリポジトリに移動し、リポジトリをフォークします。

アルバム API リポジトリの上部にある [フォーク] ボタンを選択して、リポジトリを自分のアカウントにフォークします。

これで、サンプル リポジトリのフォークをクローンできます。

次の git コマンドを使用して、フォークされたリポジトリを code-to-cloud フォルダーにクローンします。

git clone https://github.com/$GITHUB_USERNAME/containerapps-albumapi-csharp.git code-to-cloud

次に、クローンされたリポジトリのルートにディレクトリを変更します。

cd code-to-cloud/src

Azure リソース グループを作成する

コンテナー アプリのデプロイに関連するサービスを整理するためのリソース グループを作成します。

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

Azure Container Registry を作成する

次に、ビルド後にアルバム API コンテナー イメージを格納するための Azure Container Registry (ACR) インスタンスをリソース グループに作成します。

az acr create \
  --resource-group $RESOURCE_GROUP \
  --name $ACR_NAME \
  --sku Basic \
  --admin-enabled true

アプリケーションをビルドする

ACR タスクを使用すると、Docker をローカルにインストールしなくても、アルバム API の Docker イメージをビルドしてプッシュできます。

ACR を使用してコンテナーをビルドする

次のコマンドを実行して、ACR を使用したイメージのビルドとプッシュのプロセスを開始します。 コマンドの末尾の . は Docker ビルド コンテキストを表します。つまり、このコマンドは Dockerfile が配置されている src フォルダー内で実行する必要があります。

az acr build --registry $ACR_NAME --image $API_NAME .

az acr build コマンドの出力には、ソース コードの Azure へのアップロードの進行状況と docker build 操作および docker push 操作の詳細が表示されます。

アプリケーションをビルドする

次の手順は、Docker を使用してコンテナー イメージをローカルにビルドし、新しいコンテナー レジストリにイメージをプッシュする方法を示します。

Docker を使用してコンテナーをビルドする

次のコマンドでは、アルバム API のコンテナー イメージをビルドし、ACR ログイン サーバーの完全修飾名でタグ付けします。 コマンドの末尾の . は Docker ビルド コンテキストを表します。つまり、このコマンドは Dockerfile が配置されている src フォルダー内で実行する必要があります。

docker build --tag $ACR_NAME.azurecr.io/$API_NAME .

コンテナー レジストリにイメージをプッシュする

まず、Azure Container Registry にサインインします。

az acr login --name $ACR_NAME

次に、レジストリにイメージをプッシュします。

docker push $ACR_NAME.azurecr.io/$API_NAME

Container Apps 環境を作成する

Azure Container Apps 環境は、コンテナー アプリのグループを囲むセキュリティ保護された境界として機能します。

次のコマンドを使用して、Container Apps 環境を作成します。

az containerapp env create \
  --name $ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION"

コンテナー アプリにイメージをデプロイする

環境が作成されたところで、az containerapp create コマンドを使用してコンテナー アプリを作成してデプロイできます。

次のコマンドを使用して、コンテナー アプリを作成してデプロイします。

az containerapp create \
  --name $API_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $ENVIRONMENT \
  --image $ACR_NAME.azurecr.io/$API_NAME \
  --target-port 3500 \
  --ingress 'external' \
  --registry-server $ACR_NAME.azurecr.io
  • --ingressexternal に設定すると、コンテナー アプリにパブリック インターネットからアクセスできるようになります。

  • target-port は、コンテナーが要求をリッスンするポートと一致するように 3500 に設定されます。

  • query プロパティなしで az containerapp create を呼び出すと、アプリケーションに関する多くの詳細情報を含む JSON 応答が返されます。 クエリを追加すると、このコマンドによって応答がフィルター処理され FQDN のみになります。

デプロイの確認

az containerapp create コマンドによって、コンテナー アプリの完全修飾ドメイン名 (FQDN) が返されます。 FQDN を Web ブラウザーにコピーします。

Web ブラウザーで、FQDN の /albums エンドポイントに移動します。

Screenshot of response from albums API endpoint.

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

マイクロサービス間の通信」チュートリアルに進まない場合は、このクイックスタートで作成した Azure リソースを削除できます。 次のコマンドを実行すると、リソース グループが、このチュートリアルで作成したすべてのリソースと共に削除されます。

az group delete --name $RESOURCE_GROUP

ヒント

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

次のステップ

このクイックスタートは、Azure Container Apps 内のさまざまな機能を紹介する一連のプログレッシブ チュートリアルのスタート地点です。 続けて、この記事でデプロイした API を呼び出す Web フロントエンドからの通信を有効にする方法について学習します。