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-bom
と azure-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-eventhubs と spring-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-starter
- spring-cloud-azure-starter-active-directory
- spring-cloud-azure-starter-active-directory-b2c
認証の変更
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 レベルの構成オプションの詳細については、次のリンクを使用してください。
- 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
- 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
- azure-spring-boot-starter-storage から spring-cloud-azure-starter-storage-file-share
- azure-spring-cloud-starter-eventhubs から spring-cloud-azure-starter-integration-eventhubs
- azure-spring-cloud-starter-servicebus から spring-cloud-azure-starter-integration-servicebus から
- azure-spring-cloud-starter-storage-queue から spring-cloud-azure-starter-integration-storage-queue
- azure-spring-cloud-stream-binder-eventhubs から spring-cloud-azure-stream-binder-eventhubs
- azure-spring-cloud-stream-binder-servicebus-* から spring-cloud-azure-stream-binder-servicebus
API の破壊的変更
各ライブラリでの API の破壊的変更の詳細については、次のリンクを使用してください。
- 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-storage から spring-cloud-azure-starter-storage-blob
- azure-spring-boot-starter-storage から spring-cloud-azure-starter-storage-file-share
- azure-spring-cloud-starter-eventhubs から spring-cloud-azure-starter-integration-eventhubs
- azure-spring-integration-eventhubs から spring-integration-azure-eventhubs
- azure-spring-cloud-starter-servicebus から spring-cloud-azure-starter-integration-servicebus から
- azure-spring-integration-servicebus から spring-integration-azure-servicebus
- azure-spring-cloud-starter-storage-queue から spring-cloud-azure-starter-integration-storage-queue
- azure-spring-integration-storage-queue から spring-integration-azure-storage-queue
- azure-spring-cloud-stream-binder-eventhubs から spring-cloud-azure-stream-binder-eventhubs
- azure-spring-cloud-stream-binder-servicebus-* から spring-cloud-azure-stream-binder-servicebus
ライブラリの変更点
各ライブラリの破壊的変更は、次のように導入されます。
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 つです。
- すべての構成プロパティ名のプレフィックスが
azure.activedirectory
からspring.cloud.azure.active-directory
に変更されました。 - 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-endpoint
と spring.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 つです。
- すべての構成プロパティ名でプレフィックスが
azure.activedirectory.b2c
からspring.cloud.azure.active-directory.b2c
に変更されました。 - 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
次の点に注意する必要があります。
- すべての構成プロパティ名でプレフィックスが
azure.keyvault
からspring.cloud.azure.keyvault.secret
に変更されました。 spring.cloud.azure.keyvault.secret.enabled
は、Key Vault シークレット クライアント Bean の構成 (SecretClient
やSecretAsyncClient
) やConfigurableEnvironment
でのKeyVaultPropertySource
の追加など、すべての Key Vault シークレット機能を有効にするために使用されます。spring.cloud.azure.keyvault.secret.property-source-enabled
は、すべてのKeyVaultPropertySource
を有効にするために使用されます。 このプロパティは、spring.cloud.azure.keyvault.secret.enabled=true
の場合にのみ有効になります。- Azure の一般的なプロパティ (例:
client
、proxy
、retry
、credential
profile
) と Key Vault プロパティ (例:endpoint
、service-version
) の場合。spring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME
が構成されていない場合は、spring.cloud.azure.keyvault.secret.PROPERTY_NAME
が使用されます。 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#setMaxSize
とEventHubsContainerProperties#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#setMaxSize
とEventHubsContainerProperties#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
に移動してServiceBusQueueOperation
とServiceBusTopicOperation
をドロップします。 ServiceBusQueueInboundChannelAdapter
とServiceBusTopicInboundChannelAdapter
をドロップして Service Bus キュー/トピック エンティティをリッスンする機能を ServiceBusInboundChannelAdapter に移動します。- コンストラクターを
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
からServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
およびServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
に変更します。 - コンストラクターを
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
からServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
およびServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
に変更します。 - API
ServiceBusQueueOperation#setCheckpointConfig
とServiceBusTopicOperation#setCheckpointConfig
をドロップします。 受信チャネル アダプターのチェックポイント構成を設定するには、代わりにユーザーがメソッドServiceBusContainerProperties#setAutoComplete
を呼び出すことができます。 自動完了モードを無効にすると、MANUAL
チェックポイント モードと同じになり、有効にするとRECORD
モードがトリガーされます。 - API
ServiceBusQueueOperatio#setClientConfig
とServiceBusTopicOperation#setClientConfig
をドロップします。 受信チャネル アダプターで使用する、基になるServiceBusProcessorClient
を構成するには、ユーザーが代わりにServiceBusContainerProperties
を使用できます。 ServiceBusTemplate
およびDefaultMessageHandler
でCompletableFuture
のサポートをドロップし、代わりにReactor
をサポートします。ServiceBusTemplate#setDefaultEntityType
の新しい API を 追加してエンティティの種類を指定します。これは、PropertiesSupplier<String, ProducerProperties>
の 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
に移動してServiceBusQueueOperation
とServiceBusTopicOperation
をドロップします。 ServiceBusQueueInboundChannelAdapter
とServiceBusTopicInboundChannelAdapter
をドロップして Service Bus キュー/トピック エンティティをリッスンする機能を ServiceBusInboundChannelAdapter に移動します。- コンストラクターを
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
からServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
およびServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
に変更します。 - コンストラクターを
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
からServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
およびServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
に変更します。 - API
ServiceBusQueueOperation#setCheckpointConfig
とServiceBusTopicOperation#setCheckpointConfig
をドロップします。 受信チャネル アダプターのチェックポイント構成を設定するには、代わりにユーザーがメソッドServiceBusContainerProperties#setAutoComplete
を呼び出すことができます。 自動完了モードを無効にすると、MANUAL
チェックポイント モードと同じになり、有効にするとRECORD
モードがトリガーされます。 - API
ServiceBusQueueOperation#setClientConfig
とServiceBusTopicOperation#setClientConfig
をドロップします。 受信チャネル アダプターで使用する、基になるServiceBusProcessorClient
を構成するには、ユーザーが代わりにServiceBusContainerProperties
を使用できます。 ServiceBusTemplate
およびDefaultMessageHandler
でCompletableFuture
のサポートをドロップし、代わりにReactor
をサポートします。ServiceBusTemplate#setDefaultEntityType
の新しい API を 追加してエンティティの種類を指定します。これは、PropertiesSupplier<String, ProducerProperties>
の 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
を指定します。 StorageQueueTemplate
でcheckpoint-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
を指定します。 StorageQueueTemplate
でcheckpoint-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
列挙型から StartPositionProperties
の map
に変更されます。 したがって、キーはパーティション 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
値は、次のとおりです。 common
、 organizations
、 consumers
、またはテナント 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
値は、次のとおりです。 common
、 organizations
、 consumers
、またはテナント 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
値は、次のとおりです。 common
、 organizations
、 consumers
、またはテナント 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-queue
と azure-spring-cloud-stream-binder-servicebus-topic
でしたが、結合されて spring-cloud-azure-stream-binder-servicebus
になりました。
重要
バインダーの種類 servicebus-queue
と servicebus-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
値は、次のとおりです。 common
、 organizations
、 consumers
、またはテナント 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
値は、次のとおりです。 common
、 organizations
、 consumers
、またはテナント 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
値は、次のとおりです。 common
、 organizations
、 consumers
、またはテナント 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
の注釈は現在サポートされていません。