次の方法で共有


Application Configuration Service をマネージド Spring Cloud Config Server に移行する

Note

BasicStandardEnterprise プランは、2025 年 3 月中旬以降非推奨になり、廃止期間は 3 年間です。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。

Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。

この記事の適用対象: ❎ Basic/Standard ✅ Enterprise

この記事では、Azure Spring Apps Enterprise プランを Java アプリケーションで使用している場合に、Application Configuration Service (ACS) から Spring Cloud Config Server に移行する方法を説明します。

Spring Cloud Config Server は一元化された構成サービスを提供します。アプリケーションは、そのサービスを使用して Git リポジトリなどの外部ソースから構成プロパティを取得できます。

Spring Cloud Config Server をプロビジョニングする

Application Configuration Service を有効にした Azure Spring Apps Enterprise プラン インスタンスをお持ちの場合、ACS から Spring Cloud Config Server に移行するために最初に実行する手順は、Azure Spring Apps 環境内に Config Server をプロビジョニングすることです。 プロビジョニングは Azure portal または Azure CLI を使用して行えます。

Spring Cloud Config Server をプロビジョニングするには、以下の手順に従います。

  • Azure portal で、Azure Spring Apps エンタープライズのインスタンスに移動します。
  • メニューで、[Spring Cloud Config Server] を選択します。
  • [管理] を選択し、Spring Cloud Config Server が有効になっているかどうかを確認します。 有効でない場合は、有効にしてから [適用] を選択し、保存します。
  • 更新が正常に完了すると、[概要] タブに、Config Server の [プロビジョニングの状態][成功] と表示されます。

Spring Cloud Config Server を構成する

Spring Cloud Config Server のプロビジョニングが完了した後は、お使いのアプリケーションがスムーズに移行できるように Spring Cloud Config Server を構成します。

Azure portal で Spring Cloud Config Server を構成するには、以下の手順に従います。

  1. Azure Spring Apps インスタンスの [Spring Cloud Config Server] を開きます。

  2. [設定] タブで、ACS のすべてのリポジトリに関する構成を Spring Cloud Config Server にマップします。

    ACS 内のリポジトリが 1 つだけである場合は、それを Spring Cloud Config Server の既定のリポジトリとしてマップし、名前とパターンは使用しません。 ACS 内にリポジトリが複数ある場合は、そのうち 1 つを Spring Cloud Config Server の既定のリポジトリとして選択し、他のリポジトリは追加のリポジトリとして使用します。 ACS から Spring Cloud Config Server に、urilabelsearch pathnameauthentication などのプロパティを移行します。

    Azure portal に Spring Cloud Config Server のページが表示されているスクリーンショット。

  3. 構成をマッピングした後、[検証] を選択して構成内容を確認します。

  4. 検証が成功したら、[適用] を選択して Spring Cloud Config Server の構成作業を終了します。

  5. 変更を適用するには、[アプリのバインド] タブで [アプリをバインドする] を選択し、Spring Cloud Config Server を使用するすべてのアプリを選択します。

ACS の pattern プロパティを移行する際には、Azure Spring Apps のアプリ名を、Git リポジトリ内の構成ファイル名と一致させることが重要です。

  • Azure Spring Apps のアプリ名が構成ファイルのファイル名と一致していれば、一致する名前の構成ファイルが Spring Cloud Config Server によってアプリに自動的に適用され、追加の構成作業は必要ありません。
  • 名前が一致していない場合は、構成ファイルの名前に合わせて新しいアプリを作成する必要があります。

その他の構成については、Spring Cloud Config Server のドキュメントを参照してください。

アプリケーションの構成を更新する

ACS と Config Server は実装メカニズムが異なるため、一部のアプリ構成については、構成の取得方法に合わせて変更することが必要です。

Spring Cloud Config Server のプロビジョニングと構成を済ませた後、以下の手順で構成を調整する必要があります。

  1. Maven 用の pom.xml ファイルに、または Gradle 用の build.gradle ファイルに、必要とされる以下の Spring Cloud Config 依存関係を追加して、Spring Boot の依存関係を更新します。

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    
  2. プロファイルを構成します。

    ACS においてはプロファイルの指定を Azure Spring Apps デプロイ内のパターンとして行うのに対し、Spring Cloud Config Server では、プロファイルの構成をアプリケーションのソース コード内で行います。

    Spring Cloud Config Server を環境固有の構成に対応させるには、アプリケーションで使用されるプロファイル (devprod など) が正しいことを確認する必要があります。

    以下の例のように、正しい構成プロパティによって Spring Cloud Config Server が指示されるよう、アプリケーション内の bootstrap.yml ファイルまたは application.yml ファイルを更新します。

    spring:
      cloud:
        config:
          profile: dev
    

    Azure Spring Apps のアプリ名が Git リポジトリ内の構成ファイル名と一致するようにしてください。 また、spring.application.name をアプリケーションのコード内で構成することは避けてください。

アプリケーションを再デプロイする

アプリケーションをローカルでテストした後、以下の Azure CLI コマンドでアプリケーションを Azure Spring Apps に再デプロイし、Spring Cloud Config Server を使用できるようにします。

az spring app deploy \
    --name <app-name> \
    --artifact-path <path-to-your-app> \
    --config-file-patterns '""'

--config-file-patterns '""' パラメーターにより、アプリケーションに含まれる Application Configuration Service への参照をクリーン アップしています。 アプリケーションは、Application Configuration Service ではなく Spring Cloud Config Server を介して構成を使用します。

アプリケーション構成サービスを無効にする

すべてのアプリケーションについて Spring Cloud Config Server への移行が完了した後は、それらアプリケーションの Application Configuration Service に対するバインドを解除し、ACS を無効にすることができます。

  1. Azure Spring Apps インスタンスの [Application Configuration Service] を開きます。
  2. [アプリのバインド] タブを開き、バインドを解除する個々のアプリケーションを選択します。
  3. すべてのアプリケーションのバインドを解除した後、[管理] を選択し、Application Configuration Service を無効にします。

これらの手順に注意深く従うと、移行を確実にスムーズに進め、Azure Spring Apps 内で Spring Cloud Config Server のメリットを生かすことができます。

既知の制限事項

ACS では Kubernetes ネイティブの ConfigMap を使用して構成管理を行うため、ACS から Spring Cloud Config Server への移行は Java アプリケーションにのみ適用されます。 この方法では、Kubernetes 環境内で構成の動的更新が実現され、複数のプログラミング言語を使用するさまざまなアプリケーションに対応できます。 Spring Cloud Config Server は主に Java アプリケーションを想定して設計されており、Spring Framework の機能を利用するため、サポートしている構成管理は Java 用のみです。