クイック スタート: 成果物ファイルを Azure Container Apps (プレビュー) にデプロイする
このクイックスタートでは、事前に構築された成果物ファイルからコンテナー アプリをデプロイする方法について説明します。 この記事の例では、Java 固有のマニフェスト ファイルが含まれる JAR ファイルを使って、Java アプリケーションをデプロイします。 ここでのジョブは、音楽アルバムの静的コレクションを返すバックエンド Web 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
エンドポイントに移動します。
WAR ファイルをデプロイする
WAR ファイルからコンテナー アプリをデプロイすることもできます。
リソースをクリーンアップする
このアプリケーションを引き続き使用しない場合は、リソース グループを削除することで、Azure Container Apps インスタンスと関連付けられているすべてのサービスを削除できます。
次の手順のようにして、作成したリソースを削除します。
az group delete \
--resource-group $RESOURCE_GROUP
ヒント
問題がある場合は、 GitHub の Azure Container Apps リポジトリでイシューを開いて、お知らせください。