Share via


チュートリアル: アプリをビルドして Azure Container Apps にデプロイする

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

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

注意

また、クイックスタート: リポジトリから Azure Container Apps にアプリをビルドしてデプロイするアーティクルの手順に従って、az containerapp up を使用してこのアプリをビルドしてデプロイすることもできます。 az containerapp up コマンドは、1 つのコマンドでアプリをビルドして Azure Container Apps にデプロイするための高速で便利な方法です。 ただし、コンテナー アプリのカスタマイズが同じレベルで提供されるわけではありません。

シリーズの次のチュートリアルでは、フロントエンド Web アプリケーションをビルドして Azure Container Apps にデプロイします。

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

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

前提条件

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

要件 手順
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

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

az upgrade

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

az extension add --name containerapp --upgrade

最新の拡張機能またはモジュールがインストールされたので、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 シェルで次の変数を定義します。

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 8080 \
  --ingress 'external' \
  --registry-server $ACR_NAME.azurecr.io \
  --query properties.configuration.ingress.fqdn
  • --ingressexternal に設定すると、コンテナー アプリにパブリック インターネットからアクセスできるようになります。

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

  • query プロパティなしで az containerapp create を呼び出すと、アプリケーションに関する多くの詳細情報を含む JSON 応答が返されます。 クエリ パラメーターを追加すると、出力がフィルター処理されて、アプリの完全修飾ドメイン名 (FQDN) のみが表示されます。

デプロイの確認

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

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

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

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

az group delete --name $RESOURCE_GROUP

ヒント

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

次のステップ

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