Azure Spring Apps でステージング環境を設定する
Note
Basic、Standard、および Enterprise プランは、2025 年 3 月中旬以降に非推奨になり、3 年間の廃止期間となります。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。
Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨となり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金と専用プランを Azure Container Apps に移行する」を参照してください。
この記事の適用対象: ✔️ Java ❌ C#
この記事の適用対象:❌ Basic ✔️ Standard ✔️ Enterprise
この記事では、Azure Spring Apps でブルーグリーン デプロイ パターンを使用して、ステージング環境のデプロイを設定する方法について説明します。 ブルーグリーン デプロイとは、新しい (グリーン) バージョンのデプロイ中に、既存 (ブルー) のバージョンを実行状態のまま保持する、Azure DevOps の継続的デリバリーのパターンです。 この記事では、運用環境デプロイに変更を加えることなく、ステージング環境のデプロイを運用環境に移す方法について説明します。
前提条件
- Standard プランでの既存の Azure Spring Apps インスタンス。
- Azure CLI。
この記事では、Spring Initializr からビルドされたアプリケーションを使用します。 この例に別のアプリケーションを使用したい場合は、ステージング環境のデプロイを運用環境のデプロイと区別するために、そのアプリケーションの公開部分に簡単な変更を加えます。
ヒント
Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、これを使用して実行することができます。 最新バージョンの Git、JDK、Maven、Azure CLI など、一般的な Azure ツールがプレインストールされています。 Azure サブスクリプションにサインインしている場合は、Azure Cloud Shell インスタンスを開始します。 詳細については、Cloud Shell の概要に関するページをご覧ください。
Azure Spring Apps でブルーグリーン デプロイを設定するには、次のセクションの手順に従います。
Azure CLI 拡張機能をインストールする
次のコマンドを使用して、Azure CLI 用の Azure Spring Apps 拡張機能をインストールします。
az extension add --name spring
アプリとデプロイを準備する
アプリケーションをビルドするには、こちらの手順に従います。
こちらの構成で Spring Initializr を使用して、サンプル アプリのコードを生成します。
コードをダウンロードします。
次の HelloController.java ソース ファイルを *\src\main\java\com\example\hellospring* フォルダーに追加します。
package com.example.hellospring; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Greetings from Azure Spring Apps!"; } }
.jar ファイルをビルドします。
mvn clean package -DskipTests
Azure Spring Apps インスタンスでアプリを作成します。
az spring app create \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name demo \ --runtime-version Java_17 \ --assign-endpoint
アプリを Azure Spring Apps にデプロイします。
az spring app deploy \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name demo \ --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
ステージング環境のデプロイのコードを変更します。
package com.example.hellospring; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Greetings from Azure Spring Apps! THIS IS THE GREEN DEPLOYMENT"; } }
.jar ファイルをリビルドします。
mvn clean package -DskipTests
グリーン デプロイを作成します。
az spring app deployment create \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --app demo \ --name green \ --runtime-version Java_17 \ --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
アプリとデプロイを表示する
デプロイされたアプリを確認するには、次の手順を使用します。
Azure portal で Azure Spring Apps インスタンスに移動します。
ナビゲーション ウィンドウから [アプリ] ペインを開いて、お使いのサービス インスタンス用のアプリを表示します。
詳細を表示するアプリを選択します。
[デプロイ] を開いて、アプリのすべてのデプロイを表示します。 グリッドには、運用環境とステージング環境の両方のデプロイが表示されます。
URL を選択して、現在デプロイされているアプリケーションを開きます。
[状態] 列で [運用] を選択して、既定のアプリを表示します。
[状態] 列で [ステージング] を選択して、ステージング アプリを表示します。
ヒント
テスト エンドポイントの末尾がスラッシュ (/) であり、CSS ファイルが正しく読み込まれていることを確認します。 ページを表示するためにブラウザーでログイン資格情報の入力を求められる場合は、URL デコードを使用して自分のテスト エンドポイントをデコードします。 URL デコードは、形式 https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green
で URL を返します。 この形式を使用してエンドポイントにアクセスします。 テスト エンドポイントの基本認証を無効にする場合は、次の Azure CLI コマンドを実行します: az spring app update --resource-group <resource-group-name> --service <Azure-Spring-Apps-instance-name> --name demo --disable-test-endpoint-auth true
Note
構成サーバーの設定はステージング環境と運用環境の両方に適用されます。 たとえば、構成サーバー内のアプリのデモのコンテキスト パス (server.servlet.context-path) を somepath として設定すると、グリーン デプロイへのパスは https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/...
に変更されます。
このポイントで自分の公開アプリのデモにアクセスすると、新しい変更が反映されていない前のページが表示されます。
実稼働環境としてグリーン デプロイを設定する
ステージング環境で変更を確認したら、それを運用環境にプッシュすることができます。 [アプリ]>[デプロイ] ページで、現在 [運用] にあるアプリケーションを選択します。
グリーン デプロイの [登録状態] の後にある省略記号を選択し、[運用環境として設定] を選択します。
アプリの URL に変更が反映されていることを確認します。
Note
グリーン デプロイを運用環境に設定したら、前のデプロイがステージング環境のデプロイになります。
ステージング環境のデプロイを変更する
変更に満足していない場合は、Azure CLI を使用することで、アプリケーション コードを変更し、新しい .jar パッケージをビルドして、それをグリーン デプロイにアップロードできます。
az spring app deploy \
--resource-group <resource-group-name> \
--service <service-instance-name> \
--name demo \
--deployment green \
--artifact-path demo.jar
ステージング環境のデプロイを削除する
Azure portal から自分のステージング環境のデプロイを削除するには、ステージング環境のデプロイのページに移動して [削除] ボタンを選択します。
または、次のコマンドを実行して Azure CLI でステージング環境のデプロイを削除します。
az spring app deployment delete \
--resource-group <resource-group-name> \
--service <service-instance-name> \
--name <staging-deployment-name> \
--app demo