クイック スタート: 成果物ファイルを Azure Container Apps (プレビュー) にデプロイする

このクイックスタートでは、事前に構築された成果物ファイルからコンテナー アプリをデプロイする方法について説明します。 この記事の例では、Java 固有のマニフェスト ファイルが含まれる JAR ファイルを使って、Java アプリケーションをデプロイします。 ここでのジョブは、音楽アルバムの静的コレクションを返すバックエンド Web API サービスを作成することです。 このクイックスタートを完了したら、マイクロサービス間の通信に進み、API を呼び出すフロントエンド アプリケーションをデプロイする方法を学習できます。

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

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

前提条件

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

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

設定

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

RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
SUBSCRIPTION=<YOUR_SUBSCRIPTION_ID>

必要な場合は、サブスクリプション ID を照会できます。

az account list --output table

GitHub リポジトリを準備する

最初に、サンプル リポジトリをクローンします。

次の git コマンドを使用って、サンプル アプリを code-to-cloud フォルダーにクローンします。

git clone https://github.com/azure-samples/containerapps-albumapi-java code-to-cloud
cd code-to-cloud

JAR ファイルをビルドする

Note

この Java サンプルでは、実行可能な JAR ファイルが結果として作成される Maven ビルドのみがサポートされています。 環境変数での受け渡しはサポートされていないため、ビルドでは既定の設定が使われます。

Maven を使ってプロジェクトをビルドします。

mvn clean package -DskipTests

プロジェクトをローカルで実行する

java -jar target\containerapps-albumapi-java-0.0.1-SNAPSHOT.jar

アプリケーションが実行されていることを確認するには、ブラウザーを開いて http://localhost:8080/albums に移動します。 ページから JSON オブジェクトの一覧が返されます。

成果物をデプロイする

containerapp up コマンドを使い、ローカル環境の JAR ファイルから最初のコンテナー アプリを ビルドしてデプロイします。

このコマンドは、次の操作を行います。

  • リソース グループを作成する
  • Azure コンテナー レジストリを作成する
  • コンテナー イメージをビルドしてレジストリにプッシュする
  • Log Analytics ワークスペースを使用して Container Apps 環境を作成する
  • パブリック コンテナー イメージを使用してコンテナー アプリを作成してデプロイする

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

Note

注: Docker レスコード ベースと組み合わせて containerapp up を使用する場合は、 --location パラメーターを使用して、アプリケーションが米国東部以外の場所で実行されるようにします。

az containerapp up \
  --name $API_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --artifact ./target/containerapps-albumapi-java-0.0.1-SNAPSHOT.jar \
  --ingress external \
  --target-port 8080 \
  --subscription $SUBSCRIPTION

デプロイの確認

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

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

WAR ファイルをデプロイする

WAR ファイルからコンテナー アプリをデプロイすることもできます。

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

このアプリケーションを引き続き使用しない場合は、リソース グループを削除することで、Azure Container Apps インスタンスと関連付けられているすべてのサービスを削除できます。

次の手順のようにして、作成したリソースを削除します。

az group delete \
  --resource-group $RESOURCE_GROUP

ヒント

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

次のステップ