Spring Cloud Azure 4.0 の移行ガイド

このガイドは、レガシ Azure Spring ライブラリから Spring Cloud Azure 4.0 への移行に役立ちます。

はじめに

グループ ID と成果物 ID がパターン com.azure.spring:spring-cloud-azure-* に従うライブラリを最新のライブラリ、パターン com.azure.spring:azure-spring-boot-*com.azure.spring:azure-spring-cloud-*、または com.azure.spring:azure-spring-integration-* に従うライブラリをレガシ ライブラリと呼びます。

このガイドでは、最新のライブラリとレガシ ライブラリ間で類似した構成について、並べて比較することに焦点を当てます。

com.azure.spring:azure-spring-boot-*com.azure.spring:azure-spring-cloud-*com.azure.spring:azure-spring-integration-* パッケージに関する知識が前提です。

Spring Cloud Azure 4.0 ライブラリを初めて使用する場合は、このガイドではなく、Spring Cloud Azure 開発者ガイドを参照してください。

移行の利点

新しいバージョンまたはライブラリを採用するかどうかを検討する際、尋ねられる自然な質問として、その利点があります。 Azure が成熟し、より多様な開発者グループに受け入れられているようになるなか、開発者の生産性を最適にサポートし、Spring Cloud Azure ライブラリのギャップを理解するためのパターンとプラクティスを学習することに重点を置いてきました。

Spring Cloud Azure ライブラリ全体で一貫したフィードバックが寄せられた、いくつかの領域がありました。 最も重要なのは、さまざまな Azure サービスのライブラリで、構成の完全なセットが有効になっていないということです。 さらに、プロジェクトの名前付け、成果物 ID、バージョン、構成に一貫性がないことで、学習曲線が急激に変化しました。

Spring Cloud Azure ライブラリ全体の開発エクスペリエンスを向上させるために、Spring Cloud Azure ライブラリが Spring エコシステムに関する自然で慣用的な感覚を備えていることを確認する、一連の設計ガイドラインが導入されました。 詳細については、関心のある方向けの デザイン ドキュメント をご覧ください。

Spring Cloud Azure 4.0 は、Spring Boot、Spring Integration、Spring Cloud Stream など、さまざまな Spring プロジェクトと統合されたライブラリ全体で、共有エクスペリエンスを提供します。 共有エクスペリエンスには、次のものが含まれます。

  • すべての Spring Cloud Azure 4.0 ライブラリを含む統合 BOM。
  • 成果物の一貫した名前付け規則。
  • 資格情報、プロキシ、再試行、クラウド環境、トランスポート層の設定を構成する統合された方法。
  • Azure Service または Azure Service SDK がサポートするすべての認証方法をサポートします。

概要

移行ガイドは、次のセクションで構成されます。

  • Spring Cloud Azure 4.0 の名前付けの変更
  • アーティファクトの変更: 名前の変更/追加/削除
  • 依存関係の変更
  • 認証の変更
  • 構成プロパティ
  • API の破壊的変更
  • ライブラリの変更点

名前の変更

これまで、すべての Spring Cloud Azure ライブラリを称する、一貫した正式な名前はありませんでした。 Azure Spring Boot と呼ばれることも、Spring on Azure と呼ばれることもありました。 4.0 以降は、プロジェクト名 Spring Cloud Azure を使用してすべての Azure Spring ライブラリを表すようになりました。

BOM

以前はライブラリ用に azure-spring-boot-bomazure-spring-cloud-dependencies の 2 つの BOM を出荷していましたが、この 2 つの BOM を 4.0 以降の 1 つの BOM (spring-cloud-azure-dependencies) に結合しました。 依存関係管理のメリットを得られるよう、プロジェクトの dependencyManagement セクションにエントリを追加します。

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-dependencies</artifactId>
      <version>4.14.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Note

Spring Boot 3.x を使用している場合は、必ず spring-cloud-azure-dependencies のバージョンを 5.8.0 に設定してください。 spring-cloud-azure-dependencies のバージョンの詳細については、「使用する Spring Cloud Azure のバージョン」を参照してください。

アーティファクトの変更: 名前の変更/追加/削除

グループ ID は、最新の Spring Cloud Azure ライブラリとレガシ Spring Cloud Azure ライブラリで同じです。 すべて com.azure.spring です。 最新の Spring Cloud Azure ライブラリの成果物 ID が変更されました。 属している Spring プロジェクト、Spring Boot、Spring Integration、または Spring Cloud Stream に応じて、成果物 ID パターンは spring-cloud-azure-starter-[service]、または spring-integration-azure-[service]spring-cloud-azure-stream-binder-[service] にすることができます。 各レガシ スターターには、パターン azure-spring-* に従った成果物 ID があります。 これにより、最新のスターターとレガシ スターターのどちらを使用しているかを一目で把握するのに役立つ、すばやくアクセス可能な手段が提供されます。

Spring Cloud Azure 4.0 を開発するプロセスにおいて、新しい名前付け規則に従うようにいくつかの成果物の名前を変更し、機能をより適切な成果物に配置できるようにいくつかの成果物を削除し、一部のシナリオにより適切なサービスを提供するためにいくつかの新しい成果物を追加しました。

次の表は、レガシ成果物 ID と最新の成果物 ID の間のマッピングを示しています。

レガシ成果物 ID 最新の成果物 ID 説明
azure-spring-boot-starter spring-cloud-azure-starter この成果物は削除され、すべての機能が新しい spring-cloud-azure-starter 成果物に統合されます。
azure-spring-boot-starter-active-directory spring-cloud-azure-starter-active-directory 成果物の名前を変更しました。
azure-spring-boot-starter-active-directory-b2c spring-cloud-azure-starter-active-directory-b2c 成果物の名前を変更しました。
azure-spring-boot-starter-cosmos spring-cloud-azure-starter-data-cosmos 追加する成果物の名前dataが変更され、Spring Data Azure Cosmos DB を使用することを示すようになりました。
azure-spring-boot-starter-keyvault-certificates 適用外 このリリースには含まれていませんが、以降のバージョンではサポートされます。
azure-spring-boot-starter-keyvault-secrets spring-cloud-azure-starter-keyvault-secrets 成果物の名前を変更しました。
azure-spring-boot-starter-servicebus-jms spring-cloud-azure-starter-servicebus-jms 成果物の名前を変更しました。
azure-spring-boot-starter-storage spring-cloud-azure-starter-storage-blob
spring-cloud-azure-starter-storage-file-share
レガシ成果物には、Storage BLOB とファイル共有の両方の機能が含まれており、4.0 の 2 つの別々の成果物 (spring-cloud-azure-starter-storage-blob、spring-cloud-azure-starter-storage-file-share) に接続されています。
azure-spring-boot 適用外 この成果物は削除され、すべての機能が新しい spring-cloud-azure-autoconfigure 成果物に統合されます。
azure-spring-cloud-autoconfigure 適用外 この成果物は削除され、すべての機能が新しい spring-cloud-azure-autoconfigure 成果物に統合されます。
azure-spring-cloud-context 適用外 この成果物は削除され、すべての機能が新しい spring-cloud-azure-autoconfigure および spring-cloud-azure-resourcemanager 成果物に統合されます。
azure-spring-cloud-messaging spring-messaging-azure メッセージング リスナーの注釈が削除されました。
azure-spring-cloud-starter-cache 適用外 このアーティファクトは削除されました。redis を使用するには、spring-boot-starter-data-redis、spring-boot-starter-cache、spring-cloud-azure-resourcemanager、spring-cloud-azure-starter を追加します。 使用状況の詳細については、「Spring Cloud Azure Redis のサポート」を参照してください。
azure-spring-cloud-starter-eventhubs-kafka 適用外 このアーティファクトは削除されました。kafka を使用するには、spring kafka、spring-cloud-azure-resourcemanager、spring-cloud-azure-starter を追加します。 使用状況の詳細については、「Spring Cloud Azure Kafka のサポート」を参照してください。
azure-spring-cloud-starter-eventhubs spring-cloud-azure-starter-integration-eventhubs integration を追加する成果物の名前を変更しました。これは、Event Hubs での Spring Integration の使用を示します。
azure-spring-cloud-starter-servicebus spring-cloud-azure-starter-integration-servicebus integration を追加する成果物の名前を変更しました。これは、Service Bus での Spring Integration の使用を示します。
azure-spring-cloud-starter-storage-queue spring-cloud-azure-starter-integration-storage-queue integration を追加する成果物の名前を変更しました。これは、Service キューでの Spring Integration の使用を示します。
azure-spring-cloud-storage 適用外 この成果物は削除されました。すべての機能が新しい spring-cloud-azure-autoconfigure 成果物に統合されます。
azure-spring-cloud-stream-binder-eventhubs spring-cloud-azure-stream-binder-eventhubs この成果物は、新しく設計された spring-cloud-azure-stream-binder-eventhubsspring-cloud-azure-stream-binder-eventhubs-core を主に使用してリファクタリングされました。
azure-spring-cloud-stream-binder-service-core spring-cloud-azure-stream-binder-servicebus-core 成果物の名前を変更しました。
azure-spring-cloud-stream-binder-servicebus-queue spring-cloud-azure-stream-binder-servicebus この成果物は削除され、すべての機能が spring-cloud-azure-stream-binder-servicebus 成果物に統合されます。
azure-spring-cloud-stream-binder-servicebus-topic spring-cloud-azure-stream-binder-servicebus この成果物は削除され、すべての機能が spring-cloud-azure-stream-binder-servicebus 成果物に統合されます。
azure-spring-integration-core spring-integration-azure-core 成果物の名前を変更しました。
azure-spring-integration-eventhubs spring-integration-azure-eventhubs 成果物の名前を変更します。
azure-spring-integration-servicebus spring-integration-azure-servicebus 成果物の名前を変更します。
azure-spring-integration-storage-queue spring-integration-azure-storage-queue 成果物の名前を変更します。
適用外 spring-cloud-azure-actuator 新しく追加された Spring Cloud Azure Actuator 成果物。
適用外 spring-cloud-azure-actuator-autoconfigure 新しく追加された Spring Cloud Azure Actuator AutoConfigure アーティファクト。これにはアクチュエータの自動構成が含まれます。
適用外 spring-cloud-azure-autoconfigure Spring Cloud Azure AutoConfigure アーティファクトを新しく追加しました。これには、SDK クライアントのすべての自動構成、Spring Security のサポート、Spring Data のサポート、Spring Integration のサポートが含まれます。
適用外 spring-cloud-azure-core すべてのコア機能を含む、Spring Cloud Azure Core 成果物を新しく追加しました。
適用外 spring-cloud-azure-resourcemanager Resource Manager 成果物を新しく追加しました。 Azure Resource Manager を使用してメタデータを読み取り、リソースを作成するコア ライブラリです。
適用外 spring-cloud-azure-service Azure サービスの抽象化を含む、Spring Cloud Azure Service 成果物を新しく追加しました。
適用外 spring-cloud-azure-starter-appconfiguration Azure App Configuration SDK クライアントを使用するためのスターターを新しく追加しました。
適用外 spring-cloud-azure-starter-cosmos Azure Cosmos SDK クライアントを使用するためのスターターを新しく追加しました。
適用外 spring-cloud-azure-starter-eventhubs Azure Event Hubs SDK クライアントを使用するためのスターターを新しく追加しました。
適用外 spring-cloud-azure-starter-servicebus Azure Service Bus SDK クライアントを使用するためのスターターを新しく追加しました。
適用外 spring-cloud-azure-starter-storage-blob Azure Storage Blob SDK クライアントを使用するためのスターターを新しく追加しました。
適用外 spring-cloud-azure-starter-storage-file-share Azure Storage ファイル共有 SDK クライアントを使用するためのスターターを新しく追加しました。
適用外 spring-cloud-azure-starter-storage-queue Azure Storage Queue SDK クライアントを使用するためのスターターを新しく追加しました。
適用外 spring-cloud-azure-starter-stream-eventhubs Azure Event Hubs Spring Cloud Stream Binder を使用するためのスターターを新しく追加しました。
適用外 spring-cloud-azure-starter-stream-servicebus Azure Service Bus Spring Cloud Stream Binder を使用するためのスターターを新しく追加しました
適用外 spring-cloud-azure-stream-binder-eventhubs-core Azure Event Hubs 用に Spring Cloud Stream コア成果物を新しく追加しました。

依存関係の変更

レガシ成果物には、いくつかの不要な依存関係が含まれていました。最新の Spring Cloud Azure 4.0 ライブラリではこれが削除されています。 クラッシュを防ぐために、削除された依存関係をプロジェクトに手動で追加してください。

依存関係の変更があるライブラリは次のとおりです。

認証の変更

Spring Cloud Azure 4.0 では、各 Azure Service SDK でサポートされるすべての認証方法がサポートされています。 これにより、グローバル トークン資格情報を構成し、各サービス レベルでトークン資格情報を指定できます。 ただし、Spring Cloud Azure 4.0 を構成するために資格情報は必要ありません。これは、Azure Services のローカル開発環境またはマネージド ID に格納されている資格情報を適用できるためです。 ターゲット Azure リソースにアクセスするための十分なアクセス許可がプリンシパルに付与されていることを確認します。

Note

Azure メッセージング サービスとやり取りするため、セキュリティ プリンシパルにロールを割り当てる場合、メッセージング操作を実行するには Data に関連するロールが必要です。 Azure Spring Apps Stream Event Hubs/Service Bus Binder ライブラリで、リソースを自動作成する機能が必要な場合は Contributor ロールが必要です。 詳細については、Azure の組み込みロールに関するページを参照してください。

連鎖資格情報である DefaultAzureCredential bean はデフォルトで自動構成され、それ以上の認証情報が指定されていない場合は、すべてのコンポーネントが使用します。 詳細については、『Java用Azure IDクライアント ライブラリ』「DefaultAzureCredential」セクションを参照してください。

構成プロパティ

プロパティの移行

spring-boot-properties-migrator を使用する際のプロパティの移行をスムーズにするために、additional-spring-configuration-metadata.json ファイルを作成しました。 まず、次のプロパティ移行ツールをアプリケーションに追加します。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-properties-migrator</artifactId>
    <scope>runtime</scope>
</dependency>

Gradle を使用している場合:

runtime("org.springframework.boot:spring-boot-properties-migrator")

アプリを実行すると、Spring Cloud Azure によって管理されなくなったプロパティが識別されます。 置換がある場合は、一時的にプロパティが再マッピングされ、警告が表示されます。 代わりがない場合は、エラー レポートに詳細情報が表示されます。 どちらの方法でも、構成を更新し、構成が更新されたら依存関係を削除する必要があります。

先に進む前に、IDE の検索機能を使用して、統合テストで移行したプロパティのいずれかを使用中でないか再確認することをお勧めします。

Note

この変更では、多くの構成プロパティを変更しました。 spring-boot-properties-migrator を使用すると、移行がスムーズになります。

グローバル構成

最新の spring-cloud-azure-starter では、名前空間 spring.cloud.azure 内のすべての Azure SDK に適用されるプロパティを定義できます。 この機能はレガシ azure-spring-boot-starter ではサポートされていませんでした。 グローバル構成は、次の表に示す 5 つのカテゴリに分けることができます:

プレフィックス 説明
spring.cloud.azure.client 各 Azure SDK の下にトランスポート クライアントを構成します。
spring.cloud.azure.credential Microsoft Entra ID での認証方法を構成します。
spring.cloud.azure.profile Azure クラウド環境を構成します。
spring.cloud.azure.proxy プロキシ オプションを構成し、すべての Azure SDK クライアントに適用します。
spring.cloud.azure.retry 再試行オプションを構成し、すべての Azure SDK クライアントに適用します。 再試行オプションは SDK の一部をサポートしており、spring.cloud.azure.cosmos.retry はありません。

構成の完全な一覧については、『Spring Cloud Azure の構成プロパティ』を参照してください。

各 SDK を構成する

SDK レベルの構成オプションの詳細については、次のリンクを使用してください。

API の破壊的変更

各ライブラリでの API の破壊的変更の詳細については、次のリンクを使用してください。

ライブラリの変更点

各ライブラリの破壊的変更は、次のように導入されます。

azure-spring-boot-starter から spring-cloud-azure-starter

このガイドは、spring-cloud-azure-starter からバージョン 3 の azure-spring-boot-starter への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

依存関係の変更

レガシ成果物には、いくつかの不要な依存関係が含まれていました。最新の Spring Cloud Azure 4.0 ライブラリではこれが削除されています。 意図しないクラッシュを防ぐために、削除された依存関係をプロジェクトに手動で追加してください。

次の表に、削除された依存関係のリストを示します:

削除された依存関係 説明
org.springframework.boot:spring-boot-starter-validation Hibernate Validator を使用する場合に検証スターターを含めるかどうかを示します。

azure-spring-boot-starter-active-directory から spring-cloud-azure-starter-active-directory

このガイドは、spring-cloud-azure-starter-active-directory からバージョン 3 の azure-spring-boot-starter-active-directory への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

依存関係の変更

最新の Spring Cloud Azure 4.0 ライブラリ以降、レガシ成果物の不要な依存関係がいくつか削除されました。 これらの削除された依存関係をプロジェクトに追加して、意図しないクラッシュを防ぎます。

次の表に、削除された依存関係のリストを示します:

削除された依存関係 説明
com.fasterxml.jackson.core:jackson-databind 必要に応じて、この依存関係をプロジェクトに追加します。
io.projectreactor.netty:reactor-netty 必要に応じて、この依存関係をプロジェクトに追加します。
org.springframework.boot:spring-boot-starter-validation 必要に応じて、この依存関係をプロジェクトに追加します。
org.springframework.boot:spring-boot-starter-webflux 必要に応じて、この依存関係をプロジェクトに追加します。

SDK 構成の変更点

このセクションには、追加、削除、および変更されたプロパティに関する変更が含まれています。

  • 主に注意を払う必要があるのは次の 2 つです
  1. すべての構成プロパティ名のプレフィックスが azure.activedirectory から spring.cloud.azure.active-directory に変更されました。
  2. Microsoft Entra 関連の機能を有効/無効にする新しいプロパティ spring.cloud.azure.active-directory.enabled が追加されました。 既定値は false です。

次の表に、azure-spring-boot-starter-active-directory および spring-cloud-azure-starter-active-directory のプロパティのマッピングを示します:

レガシ プロパティ 最新のプロパティ
azure.activedirectory.app-id-uri spring.cloud.azure.active-directory.app-id-uri
azure.activedirectory.application-type spring.cloud.azure.active-directory.application-type
azure.activedirectory.authorization-clients spring.cloud.azure.active-directory.authorization-clients
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.on-demand spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.on-demand
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.scopes spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.scopes
azure.activedirectory.authenticate-additional-parameters spring.cloud.azure.active-directory.authenticate-additional-parameters
azure.activedirectory.base-uri spring.cloud.azure.active-directory.profile.environment.active-directory-endpoint
azure.activedirectory.client-id spring.cloud.azure.active-directory.credential.client-id
azure.activedirectory.client-secret spring.cloud.azure.active-directory.credential.client-secret
azure.activedirectory.graph-membership-uri 詳細については、次の表を参照してください。
azure.activedirectory.jwt-connect-timeout spring.cloud.azure.active-directory.jwt-connect-timeout.
azure.activedirectory.jwt-read-timeout spring.cloud.azure.active-directory.jwt-read-timeout.
azure.activedirectory.jwt-size-limit spring.cloud.azure.active-directory.jwt-size-limit.
azure.activedirectory.jwk-set-cache-lifespan spring.cloud.azure.active-directory.jwk-set-cache-lifespan.
azure.activedirectory.jwk-set-cache-refresh-time spring.cloud.azure.active-directory.jwk-set-cache-refresh-time
azure.activedirectory.post-logout-redirect-uri spring.cloud.azure.active-directory.post-logout-redirect-uri
azure.activedirectory.session-stateless spring.cloud.azure.active-directory.session-stateless
azure.activedirectory.redirect-uri-template spring.cloud.azure.active-directory.redirect-uri-template
azure.activedirectory.resource-server.claim-to-authority-prefix-map spring.cloud.azure.active-directory.resource-server.claim-to-authority-prefix-map
azure.activedirectory.resource-server.principal-claim-name spring.cloud.azure.active-directory.resource-server.principal-claim-name
azure.activedirectory.tenant-id spring.cloud.azure.active-directory.profile.tenant-id
azure.activedirectory.user-group.allowed-group-ids spring.cloud.azure.active-directory.user-group.allowed-group-ids
azure.activedirectory.user-group.allowed-group-names spring.cloud.azure.active-directory.user-group.allowed-group-names
azure.activedirectory.user-name-attribute spring.cloud.azure.active-directory.user-name-attribute
  • 次のプロパティの値型は、long から Duration に変更されます。

    • jwt-connect-timeout
    • jwt-read-timeout
    • jwk-set-cache-lifespan
    • jwk-set-cache-refresh-time.
  • 次のプロパティが削除されました:

    • azure.activedirectory.allow-telemetry
    • azure.activedirectory.user-group.enable-full-list
    • azure.activedirectory.graph-base-uri
    • azure.activedirectory.graph-membership-uri
  • 次のプロパティが追加されました:

    • spring.cloud.azure.active-directory.enabled
    • spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
    • spring.cloud.azure.active-directory.user-group.use-transitive-members

Note

azure.activedirectory.graph-membership-uri の関数は、spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpointspring.cloud.azure.active-directory.user-group.use-transitive-members の 2 つのプロパティに置き換えられました。 最初のプロパティはホスト名を指定するために使用され、2 番目のプロパティは URL パス v1.0/me/memberOf または v1.0/me/transitiveMemberOf を使用するためのフラグです。

移行の例を次に示します。

  • 例 1. ケース 1

    • レガシの場合: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf

    • 最新の場合: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=https://graph.microsoft.com/ + spring.cloud.azure.active-directory.user-group.use-transitive-members=false

  • 例 2. ケース 2

    • レガシの場合: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf

    • 最新の場合: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=https://graph.microsoft.com/ + spring.cloud.azure.active-directory.user-group.use-transitive-members=true

API の変更

次の表に、azure-spring-boot-starter-active-directory から spring-cloud-azure-starter-active-directory のクラスのマッピングを示します:

レガシ クラス 最新のクラス
com.azure.spring.aad.webapi.AADJwtBearerTokenAuthenticationConverter com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter
com.azure.spring.aad.webapi.AADResourceServerProperties com.azure.spring.cloud.autoconfigure.aad.properties.AadResourceServerProperties
com.azure.spring.aad.webapi.AADResourceServerWebSecurityConfigurerAdapter com.azure.spring.cloud.autoconfigure.aad.AadResourceServerWebSecurityConfigurerAdapter
com.azure.spring.aad.webapp.AADWebSecurityConfigurerAdapter com.azure.spring.cloud.autoconfigure.aad.AadWebSecurityConfigurerAdapter
com.azure.spring.aad.webapp.AuthorizationClientProperties com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties
com.azure.spring.aad.AADApplicationType com.azure.spring.cloud.autoconfigure.aad.properties.AadApplicationType
com.azure.spring.aad.AADAuthorizationGrantType com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationGrantType
com.azure.spring.aad.AADAuthorizationServerEndpoints com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationServerEndpoints
com.azure.spring.aad.AADClientRegistrationRepository com.azure.spring.cloud.autoconfigure.aad.AadClientRegistrationRepository
com.azure.spring.aad.AADTrustedIssuerRepository com.azure.spring.cloud.autoconfigure.aad.AadTrustedIssuerRepository
com.azure.spring.autoconfigure.aad.AADAppRoleStatelessAuthenticationFilter com.azure.spring.cloud.autoconfigure.aad.filter.AadAppRoleStatelessAuthenticationFilter
com.azure.spring.autoconfigure.aad.AADAuthenticationFilter com.azure.spring.cloud.autoconfigure.aad.filter.AadAuthenticationFilter
com.azure.spring.autoconfigure.aad.AADAuthenticationProperties com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthenticationProperties
com.azure.spring.autoconfigure.aad.UserPrincipal com.azure.spring.cloud.autoconfigure.aad.filter.UserPrincipal
com.azure.spring.autoconfigure.aad.UserPrincipalManager com.azure.spring.cloud.autoconfigure.aad.filter.UserPrincipalManager

このセクションでは、azure-spring-boot-starter-active-directory から削除されたクラスの一覧を示します。

  • レガシ クラスを削除しました

    • com.azure.spring.aad.webapp.AADHandleConditionalAccessFilter
    • com.azure.spring.aad.webapi.validator.AADJwtAudienceValidator
    • com.azure.spring.aad.webapi.validator.AADJwtClaimValidator

azure-spring-boot-starter-active-directory-b2c から spring-cloud-azure-starter-active-directory-b2c

このガイドは、spring-cloud-azure-starter-active-directory-b2c からバージョン 3 の azure-spring-boot-starter-active-directory-b2c への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

依存関係の変更

レガシ成果物には、いくつかの不要な依存関係が含まれていました。最新の Spring Cloud Azure 4.0 ライブラリではこれが削除されています。 意図しないクラッシュを防ぐために、削除された依存関係をプロジェクトに手動で追加してください。

次の表に、削除された依存関係のリストを示します:

削除された依存関係 説明
org.springframework.boot:spring-boot-starter-validation Hibernate Validator を使用する場合に検証スターターを含めるかどうかを示します。

SDK 構成の変更点

このセクションには、追加、削除、および変更されたプロパティに関する変更が含まれています。

  • 主に注意を払う必要があるのは次の 2 つです。
  1. すべての構成プロパティ名でプレフィックスが azure.activedirectory.b2c から spring.cloud.azure.active-directory.b2c に変更されました。
  2. Azure AD B2C 関連機能を有効または無効にするための新しいプロパティ spring.cloud.azure.active-directory.b2c.enabled が追加されました。 既定値は false です。

次の表に、azure-spring-boot-starter-active-directory-b2c から spring-cloud-azure-starter-active-directory-b2c のプロパティのマッピングを示します:

レガシ プロパティ 最新のプロパティ
azure.activedirectory.b2c.authenticate-additional-parameters spring.cloud.azure.active-directory.b2c.authenticate-additional-parameters
azure.activedirectory.b2c.authorization-clients spring.cloud.azure.active-directory.b2c.authorization-clients
azure.activedirectory.b2c.authorization-clients.<AZURE_CLIENT_NAME>.authorization-grant-type spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME>.authorization-grant-type
azure.activedirectory.b2c.authorization-clients.<AZURE_CLIENT_NAME>.scopes spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME>.scopes
azure.activedirectory.b2c.app-id-uri spring.cloud.azure.active-directory.b2c.app-id-uri
azure.activedirectory.b2c.base-uri spring.cloud.azure.active-directory.b2c.base-uri
azure.activedirectory.b2c.client-id spring.cloud.azure.active-directory.b2c.credential.client-id
azure.activedirectory.b2c.client-secret spring.cloud.azure.active-directory.b2c.credential.client-secret
azure.activedirectory.b2c.jwt-connect-timeout spring.cloud.azure.active-directory.b2c.jwt-connect-timeout
azure.activedirectory.b2c.jwt-read-timeout spring.cloud.azure.active-directory.b2c.jwt-read-timeout
azure.activedirectory.b2c.jwt-size-limit spring.cloud.azure.active-directory.b2c.jwt-size-limit
azure.activedirectory.b2c.login-flow spring.cloud.azure.active-directory.b2c.login-flow
azure.activedirectory.b2c.logout-success-url spring.cloud.azure.active-directory.b2c.logout-success-url
azure.activedirectory.b2c.reply-url spring.cloud.azure.active-directory.b2c.reply-url
azure.activedirectory.b2c.tenant-id spring.cloud.azure.active-directory.b2c.profile.tenant-id
azure.activedirectory.b2c.user-flows spring.cloud.azure.active-directory.b2c.user-flows
azure.activedirectory.b2c.user-name-attribute-name spring.cloud.azure.active-directory.b2c.user-name-attribute-name
  • azure-spring-boot-starter-active-directory-b2c からプロパティを削除しました。

    • azure.activedirectory.b2c.allow-telemetry
    • azure.activedirectory.b2c.tenant
  • 次のプロパティの値の型は、long から Duration に変更されます。

    • jwt-connect-timeout
    • jwt-read-timeout

API の変更

次の表に、azure-spring-boot-starter-active-directory-b2c から spring-cloud-azure-starter-active-directory-b2c のクラスのマッピングを示します:

レガシ クラス 最新のクラス
com.azure.spring.autoconfigure.b2c.AADB2CAuthorizationRequestResolver com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cAuthorizationRequestResolver
com.azure.spring.autoconfigure.b2c.AADB2CJwtBearerTokenAuthenticationConverter com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter
com.azure.spring.autoconfigure.b2c.AADB2CLogoutSuccessHandler com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cLogoutSuccessHandler
com.azure.spring.autoconfigure.b2c.AADB2COidcLoginConfigurer com.azure.spring.cloud.autoconfigure.aadb2c.AadB2COidcLoginConfigurer
com.azure.spring.autoconfigure.b2c.AADB2CProperties com.azure.spring.cloud.autoconfigure.aadb2c.properties.AadB2cProperties
com.azure.spring.autoconfigure.b2c.AADB2CTrustedIssuerRepository com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cTrustedIssuerRepository
com.azure.spring.autoconfigure.b2c.AuthorizationClientProperties com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties

azure-spring-boot-starter-cosmos から spring-cloud-azure-starter-data-cosmos

このガイドは、spring-cloud-azure-starter-data-cosmos からバージョン 3 の azure-spring-boot-starter-cosmos への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

SDK 構成の変更点

すべての構成プロパティ名でプレフィックスが azure.cosmos から spring.cloud.azure.cosmos に変更されました。

次の表に、azure-spring-boot-starter-cosmos から spring-cloud-azure-starter-data-cosmos のクラスのマッピングを示します:

レガシ プロパティ 最新のプロパティ
azure.cosmos.connection-mode spring.cloud.azure.cosmos.connection-mode
azure.cosmos.consistency-level spring.cloud.azure.cosmos.consistency-level
azure.cosmos.database spring.cloud.azure.cosmos.database
azure.cosmos.key spring.cloud.azure.cosmos.key
azure.cosmos.populate-query-metrics spring.cloud.azure.cosmos.populate-query-metrics
azure.cosmos.uri spring.cloud.azure.cosmos.endpoint

azure-spring-boot-starter-keyvault-secrets から spring-cloud-azure-starter-keyvault-secrets

このガイドは、spring-cloud-azure-starter-keyvault-secrets からバージョン 3 の azure-spring-boot-starter-keyvault-secrets への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

SDK 構成の変更点

このセクションには、追加、削除、および変更されたプロパティに関する変更が含まれています。

次の表に、azure-spring-boot-starter-keyvault-secrets から spring-cloud-azure-starter-keyvault-secrets のプロパティのマッピングを示します:

レガシ プロパティ 最新のプロパティ
azure.keyvault.case-sensitive-keys spring.cloud.azure.keyvault.secret.property-source[n].case-sensitive
azure.keyvault.certificate-password spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-password
azure.keyvault.certificate-path spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-path
azure.keyvault.client-id spring.cloud.azure.keyvault.secret.property-source[n].credential.client-id
azure.keyvault.client-key spring.cloud.azure.keyvault.secret.property-source[n].credential.client-secret
azure.keyvault.enabled spring.cloud.azure.keyvault.secret.property-source-enabled および spring.cloud.azure.keyvault.secret.property-source-enabled
azure.keyvault.order サポート対象から除外されました。 代わりに、property-source[n] の順序を使用してください。
azure.keyvault.refresh-interval spring.cloud.azure.keyvault.secret.property-source[n].refresh-interval
azure.keyvault.secret-keys spring.cloud.azure.keyvault.secret.property-source[n].secret-keys
azure.keyvault.tenant-id spring.cloud.azure.keyvault.secret.property-source[n].profile.tenant-id
azure.keyvault.uri spring.cloud.azure.keyvault.secret.property-source[n].endpoint
  • spring-cloud-azure-starter-keyvault-secrets からプロパティを削除しました

azure.keyvault.allow-telemetry azure.keyvault.order

次の点に注意する必要があります。

  1. すべての構成プロパティ名でプレフィックスが azure.keyvault から spring.cloud.azure.keyvault.secret に変更されました。
  2. spring.cloud.azure.keyvault.secret.enabled は、Key Vault シークレット クライアント Bean の構成 (SecretClientSecretAsyncClient) や ConfigurableEnvironment での KeyVaultPropertySource の追加など、すべての Key Vault シークレット機能を有効にするために使用されます。
  3. spring.cloud.azure.keyvault.secret.property-source-enabled は、すべての KeyVaultPropertySource を有効にするために使用されます。 このプロパティは、spring.cloud.azure.keyvault.secret.enabled=true の場合にのみ有効になります。
  4. Azure の一般的なプロパティ (例: clientproxyretrycredentialprofile) と Key Vault プロパティ (例: endpointservice-version) の場合。 spring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME が構成されていない場合は、spring.cloud.azure.keyvault.secret.PROPERTY_NAME が使用されます。
  5. spring.cloud.azure.keyvault.secret.property-sources[n].resource は一意の Azure リソースに固有であるため、構成されていない場合、他の場所から値が取得されることはありません。

azure-spring-boot-starter-servicebus-jms から spring-cloud-azure-starter-servicebus-jms

このガイドは、spring-cloud-azure-starter-servicebus-jms からバージョン 3 の azure-spring-boot-starter-servicebus-jms への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

SDK 構成の変更点

読みやすくするために、spring.jms.servicebus.idle-timeout の構成の種類を long (ミリ秒) から Duration のパターンに変更しました。

azure-spring-boot-starter-storage から spring-cloud-azure-starter-storage-blob

このガイドは、spring-cloud-azure-starter-storage-blob からバージョン 3 の azure-spring-boot-starter-storage への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

SDK 構成の変更点

すべての構成プロパティ名でプレフィックスが azure.storage から spring.cloud.azure.storage.blob に変更されました。

次の表に、azure-spring-boot-starter-storage から spring-cloud-azure-starter-storage-blob のプロパティのマッピングを示します:

レガシ プロパティ 最新のプロパティ
azure.storage.account-name spring.cloud.azure.storage.blob.account-name
azure.storage.account-key spring.cloud.azure.storage.blob.account-key
azure.storage.blob-endpoint spring.cloud.azure.storage.blob.endpoint

API の変更

次の表に、azure-spring-boot-starter-storage から spring-cloud-azure-starter-storage-blob のクラスのマッピングを示します:

レガシ クラス 最新のクラス
com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver com.azure.spring.core.resource.AzureStorageBlobProtocolResolver
com.azure.spring.autoconfigure.storage.resource.BlobStorageResource com.azure.spring.core.resource.StorageBlobResource
com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver com.azure.spring.core.resource.AzureStorageBlobProtocolResolver

azure-spring-boot-starter-storage から spring-cloud-azure-starter-storage-file-share

このガイドは、spring-cloud-azure-starter-storage-file-share からバージョン 3 の azure-spring-boot-starter-storage への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

SDK 構成の変更点

すべての構成プロパティ名でプレフィックスが azure.storage から spring.cloud.azure.storage.fileshare に変更されました。

次の表に、azure-spring-boot-starter-storage から spring-cloud-azure-starter-storage-file-share のプロパティのマッピングを示します:

レガシ プロパティ 最新のプロパティ
azure.storage.account-name spring.cloud.azure.storage.fileshare.account-name
azure.storage.account-key spring.cloud.azure.storage.fileshare.account-key
azure.storage.file-endpoint spring.cloud.azure.storage.fileshare.endpoint

API の変更

次の表に、azure-spring-boot-starter-storage から spring-cloud-azure-starter-storage-file-share のクラスのマッピングを示します:

レガシ クラス 最新のクラス
com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver com.azure.spring.core.resource.AzureStorageFileProtocolResolver
com.azure.spring.autoconfigure.storage.resource.FileStorageResource com.azure.spring.core.resource.StorageFileResource
com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver com.azure.spring.core.resource.AzureStorageFileProtocolResolver

azure-spring-cloud-starter-eventhubs から spring-cloud-azure-starter-integration-eventhubs

このガイドは、spring-cloud-azure-starter-integration-eventhubs からバージョン 2 の azure-spring-cloud-starter-eventhubs への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

SDK 構成の変更点

重要

構成プレフィックスが spring.cloud.azure.eventhub から spring.cloud.azure.eventhubs. に変更されました

このプレフィックスの子エントリの変更については、次の表を参照してください:

次の表に、azure-spring-cloud-starter-eventhubs から spring-cloud-azure-starter-integration-eventhubs のプロパティのマッピングを示します:

レガシ プロパティ 最新のプロパティ
spring.cloud.azure.resource-group spring.cloud.azure.eventhubs.resource.resource-group
spring.cloud.azure.eventhub.namespace spring.cloud.azure.eventhubs.namespace
spring.cloud.azure.eventhub.connection-string spring.cloud.azure.eventhubs.connection-string
spring.cloud.azure.eventhub.checkpoint-storage-account spring.cloud.azure.eventhubs.processor.checkpoint-store.account-name
spring.cloud.azure.eventhub.checkpoint-access-key spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key
spring.cloud.azure.eventhub.checkpoint-container spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name

たとえば、次のように変更します:

spring:
  cloud:
    azure:
      eventhub:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        checkpoint-storage-account: ${AZURE_CHECKPOINT_STORAGE_ACCOUNT_NAME}
        checkpoint-access-key: ${AZURE_CHECKPOINT_ACCOUNT_KEY}
        checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER_NAME}

この行を次のように変更します。

spring:
  cloud:
    azure:
      eventhubs:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        processor:
          checkpoint-store:
            container-name: ${AZURE_STORAGE_CONTAINER_NAME}
            account-name: ${AZURE_STORAGE_ACCOUNT_NAME}
            account-key: ${AZURE_STORAGE_ACCOUNT_KEY}

API の変更

  • リスナーの注釈に対する変更については、<<migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> ライブラリの移行ガイドをご覧ください。
  • サブスクライブ関数をクラス EventHubsMessageListenerContainer に移動し、送信関数を EventHubsTemplate に移動して EventHubOperation をドロップします。
  • Azure Event Hubs のサービスとの一貫性を維持するように EventHubInboundChannelAdapter の名前を EventHubsInboundChannelAdapter に変更します。
  • コンストラクターを EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) から EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) および EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode) に変更します。
  • ビルド スタイルではなく、CheckpointConfig インスタンス化スタイルを単純なコンストラクターに変更します。
  • API EventHubOperation#setCheckpointConfig をドロップします。 受信チャネル アダプターのチェックポイント構成を設定するには、ユーザーがメソッド EventHubsContainerProperties#setCheckpointConfig を呼び出すことができます。
  • API EventHubOperation#setBatchConsumerConfig をドロップします。 受信チャネル アダプターのバッチ消費構成を設定するため、ユーザーは 2 つのメソッド (EventHubsContainerProperties#getBatch#setMaxSizeEventHubsContainerProperties#getBatch#setMaxWaitTime) を呼び出すことができます。
  • バッチ使用モードの場合は、バッチ処理されたメッセージから変換されたメッセージ ヘッダー名を変更します。
    • メッセージ ヘッダーを azure_eventhub_enqueued_time から azure_eventhubs_batch_converted_enqueued_time に変更します。
    • メッセージ ヘッダーを azure_eventhub_offset から azure_eventhubs_batch_converted_offset に変更します。
    • メッセージ ヘッダーを azure_eventhub_sequence_number から azure_eventhubs_batch_converted_sequence_number に変更します。
    • メッセージ ヘッダーを azure_partition_key から azure_batch_converted_partition_key に変更します。
  • Event Hubs にメッセージを発行する場合は、バッチ処理されたメッセージから変換されたすべてのメッセージ ヘッダーを無視します。 ヘッダーには次のものが含まれます。
    • azure_batch_converted_partition_key
    • azure_eventhubs_batch_converted_enqueued_time
    • azure_eventhubs_batch_converted_offset
    • azure_eventhubs_batch_converted_sequence_number
    • azure_eventhubs_batch_converted_system_properties
    • azure_eventhubs_batch_converted_application_properties
  • BATCH チェックポイント モードは、EventHubsInboundChannelAdapter コンストラクターに ListenerMode.BATCH を渡すことで有効にできるバッチ消費モードでのみ機能します。

次の表に、azure-spring-cloud-starter-eventhubs から spring-cloud-azure-starter-integration-eventhubs のクラスのマッピングを示します:

レガシ クラス 最新のクラス
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.core.EventHubHeaders com.azure.spring.messaging.eventhubs.support.EventHubsHeaders
com.azure.spring.integration.core.api.CheckpointConfig com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointConfig
com.azure.spring.integration.core.api.CheckpointMode com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter

サンプル コード スニペット

  • EventHubsInboundChannelAdapter サンプル コード:

    レガシ コード:

    public class Demo {
        @Bean
        public EventHubInboundChannelAdapter messageChannelAdapter(
            @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, EventHubOperation   eventhubOperation) {
            eventhubOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode  (CheckpointMode.MANUAL).build());
            EventHubInboundChannelAdapter adapter = new EventHubInboundChannelAdapter("EVENTHUB_NAME",
                eventhubOperation, "CONSUMER_GROUP");
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    }
    

    最新のコード:

    public class Demo {
        @Bean
        public EventHubsMessageListenerContainer messageListenerContainer(EventHubsProcessorFactory processorFactory) {
            EventHubsContainerProperties containerProperties = new EventHubsContainerProperties();
            containerProperties.setEventHubName("EVENTHUB_NAME");
            containerProperties.setConsumerGroup("CONSUMER_GROUP");
            CheckpointConfig config = new CheckpointConfig(CheckpointMode.MANUAL);
            containerProperties.setCheckpointConfig(config);
            return new EventHubsMessageListenerContainer(processorFactory, containerProperties);
        }
    
        @Bean
        public EventHubsInboundChannelAdapter messageChannelAdapter(@Qualifier("INPUT_CHANNEL") MessageChannel inputChannel,
                                                                    EventHubsMessageListenerContainer listenerContainer) {
            EventHubsInboundChannelAdapter adapter = new EventHubsInboundChannelAdapter(listenerContainer);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    }
    
  • DefaultMessageHandler サンプル コード:

    レガシ コード:

    public class Demo {
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL")
        public MessageHandler messageSender(EventHubOperation eventhubOperation) {
            DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully.");
                }
    
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.error("There was an error sending the message.", ex);
                }
            });
            return handler;
        }
    }
    

    最新のコード:

    public class Demo {
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL")
        public MessageHandler messageSender(EventHubsTemplate eventhubOperation) {
            DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully.");
                }
    
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.error("There was an error sending the message.", ex);
                }
            });
    
            return handler;
        }
    }
    

azure-spring-integration-eventhubs から spring-integration-azure-eventhubs

このガイドは、spring-integration-azure-eventhubs からバージョン 2 の azure-spring-integration-eventhubs への移行を支援することを目的としています。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。

API の変更

  • サブスクライブ関数をクラス EventHubsMessageListenerContainer に移動し、送信関数を EventHubsTemplate に移動して EventHubOperation をドロップします。
  • Azure Event Hubs のサービスとの一貫性を維持するように EventHubInboundChannelAdapter の名前を EventHubsInboundChannelAdapter に変更します。
  • コンストラクターを EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) から EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) および EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode) に変更します。
  • ビルド スタイルではなく、CheckpointConfig インスタンス化スタイルを単純なコンストラクターに変更します。
  • API EventHubOperation#setCheckpointConfig をドロップします。 受信チャネル アダプターのチェックポイント構成を設定するには、ユーザーがメソッド EventHubsContainerProperties#setCheckpointConfig を呼び出すことができます。
  • API EventHubOperation#setBatchConsumerConfig をドロップします。 受信チャネル アダプターのバッチ消費構成を設定するため、ユーザーは 2 つのメソッド (EventHubsContainerProperties#getBatch#setMaxSizeEventHubsContainerProperties#getBatch#setMaxWaitTime) を呼び出すことができます。
  • バッチ使用モードの場合は、バッチ処理されたメッセージから変換されたメッセージ ヘッダー名を変更します。
    • メッセージ ヘッダーを azure_eventhub_enqueued_time から azure_eventhubs_batch_converted_enqueued_time に変更します。
    • メッセージ ヘッダーを azure_eventhub_offset から azure_eventhubs_batch_converted_offset に変更します。
    • メッセージ ヘッダーを azure_eventhub_sequence_number から azure_eventhubs_batch_converted_sequence_number に変更します。
    • メッセージ ヘッダーを azure_partition_key から azure_batch_converted_partition_key に変更します。
  • Event Hubs にメッセージを発行する場合は、バッチ処理されたメッセージから変換されたすべてのメッセージ ヘッダーを無視します。 ヘッダーには次のものが含まれます。
    • azure_batch_converted_partition_key
    • azure_eventhubs_batch_converted_enqueued_time
    • azure_eventhubs_batch_converted_offset
    • azure_eventhubs_batch_converted_sequence_number
    • azure_eventhubs_batch_converted_system_properties
    • azure_eventhubs_batch_converted_application_properties
  • BATCH チェックポイント モードは、EventHubsInboundChannelAdapter コンストラクターに ListenerMode.BATCH を渡すことで有効にできるバッチ消費モードでのみ機能します。

次の表に、azure-spring-integration-eventhubs から spring-integration-azure-eventhubs のクラスのマッピングを示します:

レガシ クラス 最新のクラス
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.core.EventHubHeaders com.azure.spring.messaging.eventhubs.support.EventHubsHeaders
com.azure.spring.integration.core.api.CheckpointConfig com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointConfig
com.azure.spring.integration.core.api.CheckpointMode com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter

azure-spring-cloud-starter-servicebus から spring-cloud-azure-starter-integration-servicebus から

このガイドは、spring-cloud-azure-starter-integration-servicebus からバージョン 2 の azure-spring-cloud-starter-servicebus への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

SDK 構成の変更点

spring-cloud-azure-starter-integration-servicebus ライブラリでサポートされているすべての構成オプションでは、プレフィックスは spring.cloud.azure.servicebus のままになります。

次の表に、azure-spring-cloud-starter-servicebus から spring-cloud-azure-starter-integration-servicebus のプロパティのマッピングを示します:

レガシ プロパティ 最新のプロパティ
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
spring.cloud.azure.servicebus.transport-type spring.cloud.azure.servicebus.client.transport-type
spring.cloud.azure.servicebus.retry-options.retry-mode spring.cloud.azure.servicebus.retry.mode
spring.cloud.azure.servicebus.retry-options.max-retries spring.cloud.azure.servicebus.retry.exponential.max-retrys または spring.cloud.azure.servicebus.retry.fixed.max-retrys は、spring.cloud.azure.servicebus.retry.mode=fixed または exponential に応じて構成する必要があります
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay または spring.cloud.azure.servicebus.retry.fixed.delay は、spring.cloud.azure.servicebus.retry.mode=fixed または exponential に応じて構成する必要があります
spring.cloud.azure.servicebus.retry-options.max-delay spring.cloud.azure.servicebus.retry.exponential.max-delay
spring.cloud.azure.servicebus.retry-options.try-timeout spring.cloud.azure.servicebus.retry.try-timeout

API の変更

  • サブスクライブ関数をクラス ServiceBusMessageListenerContainer に移動し、送信関数を ServiceBusTemplate に移動して ServiceBusQueueOperationServiceBusTopicOperation をドロップします。
  • ServiceBusQueueInboundChannelAdapterServiceBusTopicInboundChannelAdapter をドロップして Service Bus キュー/トピック エンティティをリッスンする機能を ServiceBusInboundChannelAdapter に移動します。
  • コンストラクターを ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) から ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) および ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode) に変更します。
  • コンストラクターを ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) から ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) および ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode) に変更します。
  • API ServiceBusQueueOperation#setCheckpointConfigServiceBusTopicOperation#setCheckpointConfig をドロップします。 受信チャネル アダプターのチェックポイント構成を設定するには、代わりにユーザーがメソッド ServiceBusContainerProperties#setAutoComplete を呼び出すことができます。 自動完了モードを無効にすると、MANUAL チェックポイント モードと同じになり、有効にすると RECORD モードがトリガーされます。
  • API ServiceBusQueueOperatio#setClientConfigServiceBusTopicOperation#setClientConfig をドロップします。 受信チャネル アダプターで使用する、基になる ServiceBusProcessorClient を構成するには、ユーザーが代わりに ServiceBusContainerProperties を使用できます。
  • ServiceBusTemplate および DefaultMessageHandlerCompletableFuture のサポートをドロップし、代わりに Reactor をサポートします。
  • ServiceBusTemplate#setDefaultEntityType の新しい API を 追加してエンティティの種類を指定します。これは、PropertiesSupplier&lt;String, ProducerProperties&gt; の Bean が ProducerProperties#entityType に指定されていない場合に必要です。
  • メッセージ ヘッダー AzureHeaders.RAW_ID をドロップします。 代わりに ServiceBusMessageHeaders.MESSAGE_ID を使用してください

次の表に、azure-spring-cloud-starter-servicebus から spring-cloud-azure-starter-integration-servicebus のクラスのマッピングを示します:

レガシ クラス 最新のクラス
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter
com.azure.spring.integration.core.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter
com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter

サンプル コード スニペット

  • ServiceBusInboundChannelAdapter サンプル コード:

    ServiceBusQueueInboundChannelAdapter または ServiceBusTopicInboundChannelAdapter を使用するレガシ コード:

    public class Demo {
        @Bean
        public ServiceBusQueueInboundChannelAdapter queueMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL_NAME") MessageChannel inputChannel, ServiceBusQueueOperation queueOperation) {
            queueOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode(CheckpointMode.MANUAL).build());
            ServiceBusQueueInboundChannelAdapter adapter = new ServiceBusQueueInboundChannelAdapter("QUEUE_NAME",
                queueOperation);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    
        @Bean
        public ServiceBusTopicInboundChannelAdapter topicMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL_NAME") MessageChannel inputChannel, ServiceBusTopicOperation topicOperation) {
            topicOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode(CheckpointMode.MANUAL).build());
            ServiceBusTopicInboundChannelAdapter adapter = new ServiceBusTopicInboundChannelAdapter("TOPIC_NAME",
                topicOperation, "SUBSCRIPTION_NAME");
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    
    }
    

    最新のコード:

    public class Demo {
        @Bean("queue-listener-container")
        public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) {
            ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties();
            containerProperties.setEntityName("QUEUE_NAME");
            containerProperties.setAutoComplete(false);
            return new ServiceBusMessageListenerContainer(processorFactory, containerProperties);
        }
    
        @Bean
        public ServiceBusInboundChannelAdapter queueMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel,
            @Qualifier("queue-listener-container") ServiceBusMessageListenerContainer listenerContainer) {
            ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    
        @Bean("topic-listener-container")
        public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) {
            ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties();
            containerProperties.setEntityName("TOPIC_NAME");
            containerProperties.setSubscriptionName("SUBSCRIPTION_NAME");
            containerProperties.setAutoComplete(false);
            return new ServiceBusMessageListenerContainer(processorFactory, containerProperties);
        }
    
        @Bean
        public ServiceBusInboundChannelAdapter topicMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel,
            @Qualifier("topic-listener-container") ServiceBusMessageListenerContainer listenerContainer) {
            ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    }
    
  • DefaultMessageHandler サンプル コード:

    キューを例として使用するレガシ コード:

    public class Demo {
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME")
        public MessageHandler queueMessageSender(ServiceBusQueueOperation queueOperation) {
            DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", queueOperation);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully.");
                }
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.info("There was an error sending the message.");
                }
            });
            return handler;
        }
    }
    

    最新のコード:

    public class Demo {
    
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME")
        public MessageHandler queueMessageSender(ServiceBusTemplate serviceBusTemplate) {
            serviceBusTemplate.setDefaultEntityType(ServiceBusEntityType.QUEUE);
            DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", serviceBusTemplate);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully for {}.", "QUEUE_NAME");
                }
    
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.info("There was an error sending the message.");
                }
            });
    
            return handler;
        }
    }
    

azure-spring-integration-servicebus から spring-integration-azure-servicebus

このガイドは、spring-integration-azure-servicebus からバージョン 2 の azure-spring-integration-servicebus への移行を支援することを目的としています。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。

API の変更

  • サブスクライブ関数をクラス ServiceBusMessageListenerContainer に移動し、送信関数を ServiceBusTemplate に移動して ServiceBusQueueOperationServiceBusTopicOperation をドロップします。
  • ServiceBusQueueInboundChannelAdapterServiceBusTopicInboundChannelAdapter をドロップして Service Bus キュー/トピック エンティティをリッスンする機能を ServiceBusInboundChannelAdapter に移動します。
  • コンストラクターを ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) から ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) および ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode) に変更します。
  • コンストラクターを ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) から ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) および ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode) に変更します。
  • API ServiceBusQueueOperation#setCheckpointConfigServiceBusTopicOperation#setCheckpointConfig をドロップします。 受信チャネル アダプターのチェックポイント構成を設定するには、代わりにユーザーがメソッド ServiceBusContainerProperties#setAutoComplete を呼び出すことができます。 自動完了モードを無効にすると、MANUAL チェックポイント モードと同じになり、有効にすると RECORD モードがトリガーされます。
  • API ServiceBusQueueOperation#setClientConfigServiceBusTopicOperation#setClientConfig をドロップします。 受信チャネル アダプターで使用する、基になる ServiceBusProcessorClient を構成するには、ユーザーが代わりに ServiceBusContainerProperties を使用できます。
  • ServiceBusTemplate および DefaultMessageHandlerCompletableFuture のサポートをドロップし、代わりに Reactor をサポートします。
  • ServiceBusTemplate#setDefaultEntityType の新しい API を 追加してエンティティの種類を指定します。これは、PropertiesSupplier&lt;String, ProducerProperties&gt; の Bean が ProducerProperties#entityType に指定されていない場合に必要です。
  • メッセージ ヘッダー AzureHeaders.RAW_ID をドロップします。 代わりに ServiceBusMessageHeaders.MESSAGE_ID を使用してください

次の表に、azure-spring-integration-servicebus から spring-integration-azure-servicebus のクラスのマッピングを示します:

レガシ クラス 最新のクラス
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter
com.azure.spring.integration.core.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter
com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter

azure-spring-cloud-starter-storage-queue から spring-cloud-azure-starter-integration-storage-queue

このガイドは、spring-cloud-azure-starter-integration-storage-queue からバージョン 2 の azure-spring-cloud-starter-storage-queue への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

SDK 構成の変更点

すべての構成プロパティ名でプレフィックスが spring.cloud.azure.storage から spring.cloud.azure.storage.queue に変更されました。

次の表に、azure-spring-cloud-starter-storage-queue から spring-cloud-azure-starter-integration-storage-queue のプロパティのマッピングを示します:

レガシ プロパティ 最新のプロパティ
spring.cloud.azure.storage.account spring.cloud.azure.storage.queue.account-name
spring.cloud.azure.storage.access-key spring.cloud.azure.storage.queue.account-key
spring.cloud.azure.storage.resource-group spring.cloud.azure.storage.queue.resource.resource-group

API の変更

  • 代わりに StorageQueueOperation をドロップして StorageQueueTemplate を指定します。
  • StorageQueueTemplatecheckpoint-mode 構成をドロップします。MANUAL モードのみがサポートされます。

次の表に、azure-spring-cloud-starter-storage-queue から spring-cloud-azure-starter-integration-storage-queue のクラスのマッピングを示します。

レガシ クラス 最新のクラス
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.storage.queue.StorageQueueTemplate com.azure.spring.storage.queue.core.StorageQueueTemplate
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource

azure-spring-integration-storage-queue から spring-integration-azure-storage-queue

このガイドは、spring-integration-azure-storage-queue からバージョン 2 の azure-spring-integration-storage-queue への移行を支援することを目的としています。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。

API の変更

  • 代わりに StorageQueueOperation をドロップして StorageQueueTemplate を指定します。
  • StorageQueueTemplatecheckpoint-mode 構成をドロップします。MANUAL モードのみがサポートされます。

次の表に、azure-spring-integration-storage-queue から spring-integration-azure-storage-queue のクラスのマッピングを示します。

レガシ クラス 最新のクラス
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.storage.queue.StorageQueueTemplate com.azure.spring.storage.queue.core.StorageQueueTemplate
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource

azure-spring-cloud-stream-binder-eventhubs から spring-cloud-azure-stream-binder-eventhubs

このガイドは、spring-cloud-azure-stream-binder-eventhubs からバージョン 2 の azure-spring-cloud-stream-binder-eventhubs への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

SDK 構成の変更点

重要

構成プレフィックスが spring.cloud.azure.eventhub から spring.cloud.azure.eventhubs. に変更されました

重要

バインダーの種類の名前は、eventhub からr eventhubs に変更されます。

このプレフィックスの子エントリの変更については、次の表を参照してください。

次の表に、azure-spring-cloud-stream-binder-eventhubs から spring-cloud-azure-stream-binder-eventhubs のプロパティのマッピングを示します:

レガシ プロパティ 最新のプロパティ
spring.cloud.azure.resource-group spring.cloud.azure.eventhubs.resource.resource-group
spring.cloud.azure.eventhub.namespace spring.cloud.azure.eventhubs.namespace
spring.cloud.azure.eventhub.connection-string spring.cloud.azure.eventhubs.connection-string
spring.cloud.azure.eventhub.checkpoint-storage-account spring.cloud.azure.eventhubs.processor.checkpoint-store.account-name
spring.cloud.azure.eventhub.checkpoint-access-key spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key
spring.cloud.azure.eventhub.checkpoint-container spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-batch-size spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-size
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-wait-time spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-wait-time
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-mode spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.mode
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-count spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.count
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-interval spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.interval
spring.cloud.stream.eventhub.bindings.binding-name.consumer.start-position spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position

Note

start-position 構成の値の型も、各パーティションの com.azure.spring.integration.core.api.StartPosition 列挙型から StartPositionPropertiesmap に変更されます。 したがって、キーはパーティション ID であり、値は com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties (オフセット、シーケンス番号、エンキューされた日時、および包含のプロパティを含む) です。

構成の移行の例

接続文字列を認証に使用し、上記のプロパティを移行するための、構成の変更を次に示します。

レガシ構成:

spring:
  cloud:
    azure:
      eventhub:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        checkpoint-storage-account: ${AZURE_CHECKPOINT_STORAGE_ACCOUNT_NAME}
        checkpoint-access-key: ${AZURE_CHECKPOINT_ACCOUNT_KEY}
        checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER_NAME}
    stream:
      eventhub:
        bindings:
          <binding-name>:
            consumer:
              max-batch-size: ${AZURE_MAX_BATCH_SIZE}
              max-wait-time: ${AZURE_MAX_WAIT_TIME}
              checkpoint-mode: ${AZURE_CHECKPOINT_MODE}
              checkpoint-count: ${AZURE_CHECKPOINT_COUNT}
              checkpoint-interval: ${AZURE_CHECKPOINT_INTERVAL}
              start-position: EARLIEST

最新の構成

spring:
  cloud:
    azure:
      eventhubs:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        processor:
          checkpoint-store:
            container-name: ${AZURE_STORAGE_CONTAINER_NAME}
            account-name:  ${AZURE_STORAGE_ACCOUNT_NAME}
            account-key: ${AZURE_STORAGE_ACCOUNT_KEY}
    stream:
      eventhubs:
        bindings:
          <binding-name>:
            consumer:
              batch:
                max-size: ${AZURE_MAX_BATCH_SIZE}
                max-wait-time: ${AZURE_MAX_WAIT_TIME}
              checkpoint:
                mode: ${AZURE_CHECKPOINT_MODE}
                count: ${AZURE_CHECKPOINT_COUNT}
                interval: ${AZURE_CHECKPOINT_INTERVAL}
              initial-partition-event-position:
                0:
                  offset: earliest
                1:
                  sequence-number: 100
                2:
                  enqueued-date-time: 2022-01-12T13:32:47.650005Z
                4:
                  inclusive: false

接続文字列の代わりにセキュリティ プリンシパルを使用する場合、4.0 より前のバージョンでは、アプリケーションはまず、指定されたセキュリティ プリンシパルを使用して Azure Resource Manager (ARM) に接続し、ARM を使用して指定された名前空間の接続文字列を取得します。 最終的に、アプリケーションは取得した接続文字列を使用してAzure Event Hubsに接続します。 このようにして、指定されたセキュリティ プリンシパルに共同作成者ロールを付与して、関連付けられている Azure Event Hubs 名前空間を取得する必要があります。

Azure Spring Apps 4.0 では、認証にセキュリティ プリンシパルを利用する 2 つの方法が用意されています。 1 つは引き続きプリンシパルを使用して ARM に接続し、プリンシパルに Contributor ロールが必要な接続文字列を取得します。 もう1つは、セキュリティ プリンシパルを利用して Microsoft Entra ID に対して認証を行い、Azure Event Hubs に直接接続します。 この場合、Contributor ロールは不要になりますが、メッセージング操作には他の Data 関連のロールが必要です。 セキュリティ プリンシパルに、Azure リソースにアクセスするための十分なアクセス許可が付与されていることを確認するには、「Microsoft Entra ID を使用してアクセスを承認する」を参照してください。

ARM に基づく認証では、サービス プリンシパルを例にとり、割り当てられたロールを変更しない構成の移行を次に示します。

レガシ構成:

spring:
  cloud:
    azure:
      client-id: ${AZURE_CLIENT_ID}
      client-secret: ${AZURE_CLIENT_SECRET}
      tenant-id: <tenant>
      resource-group: ${EVENTHUB_RESOURCE_GROUP}
      eventhub:
        namespace: ${EVENTHUB_NAMESPACE}

Note

使用できる tenant-id 値は、次のとおりです。 commonorganizationsconsumers、またはテナント ID です。 これらの値の詳細については、「エラー AADSTS50020 - ID プロバイダーのユーザー アカウントがテナントに存在しない」の「間違ったエンドポイント (個人アカウントと組織アカウント) を使用する」セクションを参照してください。 シングルテナント アプリの変換の詳細については、「Microsoft Entra ID でシングルテナント アプリをマルチテナントに変換する」を参照してください

最新の構成では、Azure サブスクリプション ID とリソース グループのプロパティが必要です。

spring:
  cloud:
    azure:
      credential:
        client-id: ${AZURE_CLIENT_ID}
        client-secret: ${AZURE_CLIENT_SECRET}
      profile:
        tenant-id: <tenant>
        subscription-id: ${AZURE_SUBSCRIPTION_ID}
      eventhubs:
        namespace: ${EVENTHUB_NAMESPACE}
        resource:
          resource-group: ${RESOURCE_GROUP}

Note

使用できる tenant-id 値は、次のとおりです。 commonorganizationsconsumers、またはテナント ID です。 これらの値の詳細については、「エラー AADSTS50020 - ID プロバイダーのユーザー アカウントがテナントに存在しない」の「間違ったエンドポイント (個人アカウントと組織アカウント) を使用する」セクションを参照してください。 シングルテナント アプリの変換の詳細については、「Microsoft Entra ID でシングルテナント アプリをマルチテナントに変換する」を参照してください

また、ARM に迂回することなく、Microsoft Entra ID で直接認証および承認するように移行することもできます。 必ず、メッセージング操作に必要な Data ロールをセキュリティ プリンシパルに付与してください。 サービス プリンシパルとマネージド ID の構成例を次に示します。

  • サービス プリンシパルを使用

    spring:
      cloud:
        azure:
          credential:
            client-id: ${AZURE_CLIENT_ID}
            client-secret: ${AZURE_CLIENT_SECRET}
          profile:
            tenant-id: <tenant>
          eventhubs:
            namespace: ${EVENTHUB_NAMESPACE}
    

Note

使用できる tenant-id 値は、次のとおりです。 commonorganizationsconsumers、またはテナント ID です。 これらの値の詳細については、「エラー AADSTS50020 - ID プロバイダーのユーザー アカウントがテナントに存在しない」の「間違ったエンドポイント (個人アカウントと組織アカウント) を使用する」セクションを参照してください。 シングルテナント アプリの変換の詳細については、「Microsoft Entra ID でシングルテナント アプリをマルチテナントに変換する」を参照してください

  • マネージド ID を使用

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
            client-id: ${AZURE_MANAGED_IDENTITY_CLIENT_ID} # Only needed when using a user-assigned managed identity
          eventhubs:
            namespace: ${EVENTHUB_NAMESPACE}
    

API の変更

次の表に、azure-spring-cloud-stream-binder-eventhubs から spring-cloud-azure-stream-binder-eventhubs のクラスのマッピングを示します。

レガシ クラス 最新のクラス
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.core.EventHubHeaders com.azure.spring.messaging.eventhubs.support.EventHubsHeaders

azure-spring-cloud-stream-binder-servicebus-* から spring-cloud-azure-stream-binder-servicebus

このガイドは、バージョン 2 の azure-spring-cloud-stream-binder-servicebus-queue または azure-spring-cloud-stream-binder-servicebus-topic から spring-cloud-azure-stream-binder-servicebus への移行を支援することを目的としています。

一般的な情報については、次のリンクを参照してください。

  • 4.0 の変更点の概要については、「概要移行の利点」セクションを参照してください。
  • プロジェクトの名前付けに関する戦略的な変更の詳細については、「名前付けの変更」セクションを参照してください。
  • すべての Spring Cloud Azure ライブラリに 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
  • Spring Cloud Azure 4.0 で認証を処理する方法については、「認証の変更」セクションを参照してください。
  • 移行中に spring-boot-properties-migrator を活用する方法については、「各 SDK の構成」セクションを参照してください。
  • グローバルおよび一般的な構成の変更の詳細については、「グローバル構成」セクションを参照してください。

SDK 構成の変更点

重要

従来のバインダー ライブラリは azure-spring-cloud-stream-binder-servicebus-queueazure-spring-cloud-stream-binder-servicebus-topic でしたが、結合されて spring-cloud-azure-stream-binder-servicebus になりました。

重要

バインダーの種類 servicebus-queueservicebus-topic を組み合わせて servicebus にしました。

次の表は、spring-cloud-azure-stream-binder-servicebus の新しい構成プロパティの一覧を示します:

最新のプロパティ 説明
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type 送信側関数を使用する場合は、トピックまたはキューに設定できる、エンティティ型を設定する必要があります。

次の表に、azure-spring-cloud-stream-binder-servicebus-* から spring-cloud-azure-stream-binder-servicebus のプロパティのマッピングを示します:

レガシ プロパティ 最新のプロパティ
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
spring.cloud.azure.servicebus.transport-type spring.cloud.azure.servicebus.client.transport-type
spring.cloud.azure.servicebus.retry-options.retry-mode spring.cloud.azure.servicebus.retry.mode
spring.cloud.azure.servicebus.retry-options.max-retries spring.cloud.azure.servicebus.retry.exponential.max-retrys または spring.cloud.azure.servicebus.retry.fixed.max-retrys は、spring.cloud.azure.servicebus.retry.mode=fixed または exponential に応じて構成する必要があります
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay または spring.cloud.azure.servicebus.retry.fixed.delay は、spring.cloud.azure.servicebus.retry.mode=fixed または exponential に応じて構成する必要があります
spring.cloud.azure.servicebus.retry-options.max-delay spring.cloud.azure.servicebus.retry.exponential.max-delay
spring.cloud.azure.servicebus.retry-options.try-timeout spring.cloud.azure.servicebus.retry.try-timeout
spring.cloud.stream.servicebus.queue.bindings.* spring.cloud.stream.servicebus.bindings.*
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.concurrency spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.checkpoint-mode spring.cloud.stream.servicebus.bindings.binding-name.consumer.auto-complete
spring.cloud.stream.servicebus.topic.bindings.* spring.cloud.stream.servicebus.bindings.*
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.concurrency spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.checkpoint-mode spring.cloud.stream.servicebus.bindings.binding-name.consumer.auto-complete

Note

コンカレンシー プロパティは maxConcurrentSessions (sessionsEnabled が true の場合) および maxConcurrentCalls (sessionsEnabled が false の場合) に置き換えられます。

Note

オートコンプリートの有効化は RECORD チェックポイント モードと同じで、逆は MANUAL モードです。

構成の移行の例

キューを例として使用するレガシ構成:

spring:
  cloud:
    azure:
      servicebus:
        connection-string: ${AZURE_SERVICEBUS_BINDER_CONNECTION_STRING}
    stream:
      function:
        definition: consume;supply
      bindings:
        consume-in-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
        supply-out-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
      servicebus:
        queue:
          bindings:
            consume-in-0:
              consumer:
                checkpoint-mode: MANUAL

最新の構成

spring:
  cloud:
    azure:
      servicebus:
        connection-string: ${AZURE_SERVICEBUS_BINDER_CONNECTION_STRING}
    stream:
      function:
        definition: consume;supply
      bindings:
        consume-in-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
        supply-out-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
      servicebus:
        bindings:
          consume-in-0:
            consumer:
              auto-complete: false
          supply-out-0:
            producer:
              entity-type: queue #set as topic if needed

接続文字列の代わりにセキュリティ プリンシパルを使用する場合、4.0 より前のバージョンでは、アプリケーションはまず、指定されたセキュリティ プリンシパルを使用して Azure Resource Manager (ARM) に接続し、ARM を使用して指定された名前空間の接続文字列を取得します。 最終的に、アプリケーションは取得した接続文字列を使用して Azure Service Bus に接続します。 このようにして、指定されたセキュリティ プリンシパルに共同作成者ロールを付与して、関連付けられている Azure Service Bus 名前空間を取得する必要があります。

Azure Spring Apps 4.0 では、認証にセキュリティ プリンシパルを利用する 2 つの方法が用意されています。 1 つは引き続きプリンシパルを使用して ARM に接続し、プリンシパルに Contributor ロールが必要な接続文字列を取得します。 もう1つは、セキュリティ プリンシパルを利用して Microsoft Entra ID に対して認証を行い、Azure Service Bus に直接接続します。 この場合、Contributor ロールは不要になりますが、メッセージング操作には他の Data 関連のロールが必要です。 セキュリティ プリンシパルに、Azure リソースにアクセスするための十分なアクセス許可が付与されていることを確認するには、「Microsoft Entra ID を使用してアクセスを承認する」を参照してください。

ARM に基づく認証では、サービス プリンシパルを例にとり、割り当てられたロールを変更しない構成の移行を次に示します。

レガシ構成:

spring:
  cloud:
    azure:
      client-id: ${AZURE_CLIENT_ID}
      client-secret: ${AZURE_CLIENT_SECRET}
      tenant-id: <tenant>
      resource-group: ${SERVICEBUS_RESOURCE_GROUP}
      servicebus:
        namespace: ${SERVICEBUS_NAMESPACE}

Note

使用できる tenant-id 値は、次のとおりです。 commonorganizationsconsumers、またはテナント ID です。 これらの値の詳細については、「エラー AADSTS50020 - ID プロバイダーのユーザー アカウントがテナントに存在しない」の「間違ったエンドポイント (個人アカウントと組織アカウント) を使用する」セクションを参照してください。 シングルテナント アプリの変換の詳細については、「Microsoft Entra ID でシングルテナント アプリをマルチテナントに変換する」を参照してください

最新の構成では、Azure サブスクリプション ID とリソース グループのプロパティが必要です。

spring:
  cloud:
    azure:
      credential:
        client-id: ${AZURE_CLIENT_ID}
        client-secret: ${AZURE_CLIENT_SECRET}
      profile:
        tenant-id: <tenant>
        subscription-id: ${AZURE_SUBSCRIPTION_ID}
      servicebus:
        namespace: ${SERVICEBUS_NAMESPACE}
        resource:
          resource-group: ${SERVICEBUS_RESOURCE_GROUP}

Note

使用できる tenant-id 値は、次のとおりです。 commonorganizationsconsumers、またはテナント ID です。 これらの値の詳細については、「エラー AADSTS50020 - ID プロバイダーのユーザー アカウントがテナントに存在しない」の「間違ったエンドポイント (個人アカウントと組織アカウント) を使用する」セクションを参照してください。 シングルテナント アプリの変換の詳細については、「Microsoft Entra ID でシングルテナント アプリをマルチテナントに変換する」を参照してください

また、ARM に迂回することなく、Microsoft Entra ID で直接認証および承認するように移行することもできます。 必ず、メッセージング操作に必要な Data ロールをセキュリティ プリンシパルに付与してください。 サービス プリンシパルとマネージド ID の構成例を次に示します。

  • サービス プリンシパルを使用

    spring:
      cloud:
        azure:
          credential:
            client-id: ${AZURE_CLIENT_ID}
            client-secret: ${AZURE_CLIENT_SECRET}
          profile:
            tenant-id: <tenant>
          servicebus:
            namespace: ${SERVICEBUS_NAMESPACE}
    

Note

使用できる tenant-id 値は、次のとおりです。 commonorganizationsconsumers、またはテナント ID です。 これらの値の詳細については、「エラー AADSTS50020 - ID プロバイダーのユーザー アカウントがテナントに存在しない」の「間違ったエンドポイント (個人アカウントと組織アカウント) を使用する」セクションを参照してください。 シングルテナント アプリの変換の詳細については、「Microsoft Entra ID でシングルテナント アプリをマルチテナントに変換する」を参照してください

  • マネージド ID を使用

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
            client-id: ${AZURE_MANAGED_IDENTITY_CLIENT_ID} # Only needed when using a user-assigned   managed identity
          servicebus:
            namespace: ${SERVICEBUS_NAMESPACE}
    

API の変更

  • メッセージ ヘッダー AzureHeaders.RAW_ID をドロップします。 代わりに ServiceBusMessageHeaders.MESSAGE_ID を使用してください

次の表に、azure-spring-cloud-stream-binder-eventhubs から spring-cloud-azure-stream-binder-eventhubs のクラスのマッピングを示します。

レガシ クラス 最新のクラス
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders
com.azure.spring.integration.core.api.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer

azure-spring-cloud-messaging

com.azure.spring:azure-spring-cloud-messaging ライブラリは 4.0 には対応していません。 リスナー注釈の機能は再設計中であるため @AzureMessageListener@AzureMessageListeners@EnableAzureMessaging の注釈は現在サポートされていません。