Azure Spring Apps でステージング環境を設定する

Note

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

この記事の適用対象: ✔️ 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

アプリとデプロイを準備する

アプリケーションをビルドするには、こちらの手順に従います。

  1. こちらの構成で Spring Initializr を使用して、サンプル アプリのコードを生成します。

  2. コードをダウンロードします。

  3. 次の 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!";
      }
    
    }
    
  4. .jar ファイルをビルドします。

    mvn clean package -DskipTests
    
  5. 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
    
  6. アプリを 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
    
  7. ステージング環境のデプロイのコードを変更します。

    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";
      }
    
    }
    
  8. .jar ファイルをリビルドします。

    mvn clean package -DskipTests
    
  9. グリーン デプロイを作成します。

    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
    

アプリとデプロイを表示する

デプロイされたアプリを確認するには、次の手順を使用します。

  1. Azure portal で Azure Spring Apps インスタンスに移動します。

  2. ナビゲーション ウィンドウから [アプリ] ウィンドウを開き、サービス インスタンスのアプリを表示します。

    Screenshot of the Apps pane showing apps for your service instance.

  3. 詳細を表示するアプリを選択します。

    Screenshot of details for an app.

  4. [デプロイ] を開いて、アプリのすべてのデプロイを表示します。 グリッドには、運用環境とステージング環境の両方のデプロイが表示されます。

    Screenshot that shows listed app deployments.

  5. URL を選択して、現在デプロイされているアプリケーションを開きます。

    Screenshot that shows the URL of the deployed application.

  6. [状態] 列で [運用] を選択して、既定のアプリを表示します。

    Screenshot that shows the URL of the default app.

  7. [状態] 列で [ステージング] を選択して、ステージング アプリを表示します。

    Screenshot that shows the URL of the staging app.

ヒント

テスト エンドポイントの末尾がスラッシュ (/) であり、CSS ファイルが正しく読み込まれていることを確認します。 ページを表示するためにブラウザーでログイン資格情報の入力を求められる場合は、URL デコードを使用して自分のテスト エンドポイントをデコードします。 URL デコードは、形式 https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green で URL を返します。 この形式を使用してエンドポイントにアクセスします。

Note

構成サーバーの設定はステージング環境と運用環境の両方に適用されます。 たとえば、構成サーバーのアプリ デモのコンテキスト パス (server.サーブレット.context-path) を somepath として設定すると、緑色のデプロイへのパスは > にhttps://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/...変わります。

この時点で公開アプリのデモにアクセスすると、新しい変更なしで古いページが表示されます。

実稼働環境としてグリーン デプロイを設定する

  1. ステージング環境で変更を確認したら、それを運用環境にプッシュすることができます。 [アプリ]>[デプロイ] ページで、現在 [運用] にあるアプリケーションを選択します。

  2. グリーン デプロイの [登録状態] の後にある省略記号を選択し、[運用環境として設定] を選択します。

    Screenshot that shows selections for setting the staging build to production.

  3. アプリの URL に変更が反映されていることを確認します。

    Screenshot that shows the URL of the app now in production.

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

次のステップ