クイックスタート: ローカル ソース コードから Azure Container Apps へのビルドとデプロイを行う

この記事では、選択したプログラミング言語を使用して、ローカル ソース コードから Azure Container Apps へのマイクロサービスのビルドとデプロイを行う方法を示します。 音楽アルバムの静的コレクションを返すバックエンド Web API サービスを作成します。

Note

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

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

Screenshot of response from albums API endpoint.

前提条件

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

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

詳細については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。
Azure CLI Azure CLI をインストールします。

セットアップ

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 シェルで次の変数を定義します。

export RESOURCE_GROUP="album-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-album-containerapps"
export API_NAME="album-api"

サンプル コードの入手

選択した言語の API サンプル アプリケーションをダウンロードして抽出します。

マシンにソース コードをダウンロードします

ダウンロード結果を抽出し、containerapps-albumapi-csharp-main/src フォルダーの中に移動します。

マシンにソース コードをダウンロードします

ダウンロード結果を抽出し、containerapps-albumapi-csharp-buildpack/src フォルダーに移動します。


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

containerapp up コマンドを使用して、最初のコンテナー アプリをビルドしてデプロイします。 このコマンドは次の操作を行います:

  • リソース グループの作成
  • Azure Container Registry を作成する
  • コンテナー イメージをビルドしてレジストリにプッシュする
  • Container Apps 環境を Log Analytics ワークスペースと作成する
  • ビルドされたコンテナー イメージを使用してコンテナー アプリを作成してデプロイする
  • リソース グループを作成する
  • 環境の一部として既定のレジストリを作成する
  • アプリケーションの言語とランタイムを検出し、適切な Buildpack を使用してイメージをビルドする
  • イメージを Azure Container Apps の既定のレジストリにプッシュする
  • Container Apps 環境を Log Analytics ワークスペースと作成する
  • ビルドされたコンテナー イメージを使用してコンテナー アプリを作成してデプロイする

up コマンドは、リポジトリのルートにある Docker ファイルを使用してコンテナー イメージをビルドします。 Dockerfile 内の EXPOSE 命令によって、ターゲット ポートが定義されました。これは、イングレス トラフィックをコンテナーに送信するために使用されるポートになります。

up コマンドは、Dockerfile を見つけられない場合、Buildpack を自動的に使用してアプリケーション ソースを実行可能なコンテナーに変換します。 Buildpack はユーザーに代わってビルドを実行しようとするため、up コマンドに対してイングレス トラフィックをどのポートに送信するべきかを指示する必要があります。

次のコード例において、. (ドット) は、containerapp up に対して、抽出されたサンプル API アプリケーションの src ディレクトリで実行するように指示します。

az containerapp up \
  --name $API_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --source .
az containerapp up \
  --name $API_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --ingress external \
  --target-port 8080 \
  --source .

デプロイの確認

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

Screenshot of response from albums API endpoint.

Note

Azure Container Apps 上のすべての .NET アプリに対してデータ保護を有効にする必要があります。 詳細については、「Azure Container Apps での ASP.NET Core アプリのデプロイとスケーリング」を参照してください。

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

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

注意事項

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

az group delete --name $RESOURCE_GROUP

ヒント

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

次のステップ

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