Spring Boot アプリケーションを検出して登録する

Note

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

この記事の適用対象: ✔️ Standard 従量課金および専用 (プレビュー) ✔️ Basic/Standard ❌ Enterprise

この記事では、Spring Cloud Service Registry を使用してアプリケーションを登録する方法について説明します。

サービスの登録と検出は、呼び出すライブ アプリ インスタンスの一覧を維持し、受信要求をルーティングおよび負荷分散するための重要な要件です。 各クライアントを手動で構成するのは時間がかかり、人為的なエラーが発生する可能性があります。 Azure Spring Apps には、この問題を解決するための 2 つのオプションが用意されています。

Note

Standard 従量課金プランと専用プランでサービス レジストリを使用するには、まずそれを有効にする必要があります。 詳細については、「Azure Spring Apps で Eureka Server を有効または無効にする」を参照してください。

  • Kubernetes Service Discovery アプローチを使用して、アプリ間で呼び出しを行います。

    Azure Spring Apps では、kubernetes サービス名としてアプリ名を使用して、実行中のすべてのアプリに対応する kubernetes サービスが作成されます。 http(s)://{app name}/path などの HTTP/HTTPS 要求でアプリ名を使用して、1 つのアプリから別のアプリへの呼び出しを起動することができます。 このアプローチは、Enterprise プランにも適しています。 詳細については、Kubernetes レジストリのコード サンプルを参照してください。

    Note

    この方法は、Standard 従量課金と専用 (プレビュー) には適していません。

  • Azure Spring Apps のマネージド Spring Cloud Service Registry (OSS) を使用します。

    構成が完了した後は、Service Registry サーバーによってアプリケーションのサービス登録と検出が制御されます。 Service Registry サーバーは、ライブ アプリ インスタンスのレジストリを維持し、クライアント側の負荷分散を有効にし、DNS に依存せずにクライアントからサービス プロバイダーを分離します。

Steeltoe アプリのサービス登録を設定する方法については、Azure Spring Apps にデプロイするための Java Spring アプリケーションの準備に関するページを参照してください。

Spring Cloud Service Registry を使用してアプリケーションを登録する

アプリケーションで Spring Cloud Service Registry を使用してサービスの登録と検出を管理するには、先に、pom.xml ファイルに spring-cloud-starter-netflix-eureka-client の依存関係を含めておく必要があります。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

最上位のクラスを更新する

最後に、次の例に示すように、アプリケーションの最上位のクラスに注釈を追加します。

package foo.bar;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
@EnableEurekaClient
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

Spring Cloud Service Registry サーバーのエンドポイントが、アプリケーションに環境変数として挿入されます。 アプリケーションはサービス レジストリ サーバーに登録され、他の依存アプリケーションを検出できます。

Note

変更がサーバーからすべてのアプリケーションに反映されるまでには数分かかる場合があります。

次のステップ

この記事では、Spring Cloud Service Registry を使用してアプリケーションを登録する方法について説明します。 Microsoft Entra のロールベースのアクセス制御 (RBAC) を使用して Spring Cloud Service Registry にアクセスする方法については、「Config Server とサービス レジストリにアクセスする」を参照してください。