このガイドは、従来の 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 エコシステムに関して自然で慣用的な感覚を持っていることを確認するための一連の設計ガイドラインが導入されました。 詳細については、design ドキュメントを参照してください。
Spring Cloud Azure 4.0 は、Spring Boot、Spring Integration、Spring Cloud Stream など、さまざまな Spring プロジェクトと統合されたライブラリ間で共有エクスペリエンスを提供します。 共有エクスペリエンスには次のものが含まれます。
- すべての Spring Cloud Azure 4.0 ライブラリを含む統合 BOM。
- 成果物の一貫した名前付け規則。
- 資格情報、プロキシ、再試行、クラウド環境、トランスポート層の設定を構成するための統合された方法。
- Azure サービスまたは 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
以前はライブラリ用の 2 つの BOM (azure-spring-boot-bom と azure-spring-cloud-dependencies) を出荷してきましたが、4.0 以降、この 2 つの BOM を 1 つの BOM に組み合わせ、spring-cloud-azure-dependencies。 依存関係管理のメリットを得るために、プロジェクトの dependencyManagement セクションにエントリを追加します。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>7.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
手記
Spring Boot 4.0.x を使用している場合は、必ず spring-cloud-azure-dependencies バージョンを 7.1.0 に設定してください。
Spring Boot 3.5.x を使用している場合は、必ず spring-cloud-azure-dependencies バージョンを 6.2.0 に設定してください。
Spring Boot 3.1.x-3.5.x を使用している場合は、必ず spring-cloud-azure-dependencies バージョンを 5.25.0 に設定してください。
Spring Boot 2.xを使用している場合は、 spring-cloud-azure-dependencies バージョンを 4.20.0に設定してください。
この部品表(BOM)は、<dependencyManagement> ファイルの セクションに設定する必要があります。 これにより、すべての Spring Cloud Azure依存関係で同じバージョンが使用されるようになります。
この BOM に使用されるバージョンの詳細については、「 Spring Cloud のバージョンAzure使用する必要がありますを参照してください。
アーティファクトの変更: 名前の変更/追加/削除
グループ ID は、最新の Spring Cloud Azure ライブラリと従来の Spring Cloud ライブラリで同じです。 これらはすべて 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 |
Spring Data Azure Cosmos DBの使用を示す、data を追加するようにアーティファクトの名前を変更しました。 |
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 |
レガシ 成果物には、ストレージ BLOB とファイル共有の両方の機能が含まれており、4.0、 spring-cloud-azure-starter-storage-blob 、 spring-cloud-azure-starter-storage-file-shareの 2 つの異なる成果物にスプライシングされています。 |
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 |
Spring Integration と Event Hubs の使用を示すアーティファクトの名前を変更して、integrationを追加しました。 |
azure-spring-cloud-starter-servicebus |
spring-cloud-azure-starter-integration-servicebus |
Spring Integration と Service Bus の使用を示す、integration を追加するようにアーティファクトの名前を変更しました。 |
azure-spring-cloud-starter-storage-queue |
spring-cloud-azure-starter-integration-storage-queue |
Spring Integration と Storage Queue の使用を示す、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 DB 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-starterspring-cloud-azure-starter-active-directoryspring-cloud-azure-starter-active-directory-b2c
認証の変更
Spring Cloud Azure 4.0 では、各 Azure Service SDK でサポートされているすべての認証方法がサポートされています。 これにより、グローバル トークン資格情報を構成し、各サービス レベルでトークン資格情報を指定できます。 ただし、Spring Cloud Azure 4.0 を構成するために資格情報は必要ありません。これは、Azure Services のローカル開発環境またはマネージド ID に格納されている資格情報を適用できるためです。 ターゲット Azure リソースにアクセスするための十分なアクセス許可がプリンシパルに付与されていることを確認してください。
手記
Azure メッセージング サービスと対話するためにセキュリティ プリンシパルにロールを割り当てる場合、メッセージング操作を実行するには、Data 関連ロールが必要です。 Azure Spring Apps Stream Event Hubs/Service Bus Binder ライブラリの場合、リソースを自動作成する機能が必要な場合は、Contributor ロールが必要です。 詳細については、「Azure組み込みロールを参照してください。
チェーンされた資格情報。DefaultAzureCredential Bean は既定で自動構成され、認証情報がそれ以上指定されていない場合は、すべてのコンポーネントによって使用されます。 詳細については、「< Java の id クライアント ライブラリの
構成プロパティ
プロパティの移行
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 の検索機能を使用して、統合テストで移行したプロパティの 1 つを使用していないことを再確認することをお勧めします。
手記
この変更では、多くの構成プロパティが変更されました。
spring-boot-properties-migrator を使用すると、移行がスムーズになります。
グローバル構成
モダン spring-cloud-azure-starterを使用すると、名前空間 spring.cloud.azure内のすべてのAzure SDKsに適用されるプロパティを定義できます。 この機能は、レガシ 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 へ
このガイドは、azure-spring-boot-starter のバージョン 3 からspring-cloud-azure-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 |
休止状態検証を使用する場合は、検証スターターを含めます。 |
azure-spring-boot-starter-active-directory から spring-cloud-azure-starter-active-directory へ
このガイドは、azure-spring-boot-starter-active-directory のバージョン 3 からspring-cloud-azure-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。 既定値は 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-timeoutjwt-read-timeoutjwk-set-cache-lifespan-
jwk-set-cache-refresh-time。
次のプロパティは削除されます。
azure.activedirectory.allow-telemetryazure.activedirectory.user-group.enable-full-listazure.activedirectory.graph-base-uriazure.activedirectory.graph-membership-uri
次のプロパティが追加されます。
spring.cloud.azure.active-directory.enabledspring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpointspring.cloud.azure.active-directory.user-group.use-transitive-members
手記
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.AADHandleConditionalAccessFiltercom.azure.spring.aad.webapi.validator.AADJwtAudienceValidatorcom.azure.spring.aad.webapi.validator.AADJwtClaimValidator
azure-spring-boot-starter-active-directory-b2c から spring-cloud-azure-starter-active-directory-b2c へ
このガイドは、azure-spring-boot-starter-active-directory-b2c のバージョン 3 からspring-cloud-azure-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 |
休止状態検証を使用する場合は、検証スターターを含めます。 |
SDK 構成の変更
このセクションには、追加、削除、および変更されたプロパティに関する変更が含まれています。
- 注意を払う主なポイントは次の 2 つあります。
- すべての構成プロパティ名でプレフィックスが
azure.activedirectory.b2cからspring.cloud.azure.active-directory.b2cに変更されました。 - 新しいプロパティ
spring.cloud.azure.active-directory.b2c.enabledが追加され、AD B2C 関連機能Azure有効または無効にできます。 既定値は 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-telemetryazure.activedirectory.b2c.tenant
次のプロパティの値型が
longからDurationに変更されます。jwt-connect-timeoutjwt-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 へ
このガイドは、azure-spring-boot-starter-cosmos のバージョン 3 からspring-cloud-azure-starter-data-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 へ
このガイドは、azure-spring-boot-starter-keyvault-secrets のバージョン 3 からspring-cloud-azure-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-telemetryazure.keyvault.order
次の点に注意する必要があります。
- すべての構成プロパティ名でプレフィックスが
azure.keyvaultからspring.cloud.azure.keyvault.secretに変更されました。 -
spring.cloud.azure.keyvault.secret.enabledは、すべてのKey Vaultシークレット機能を有効にするために使用されます。Key Vaultシークレット クライアント Bean (SecretClient、SecretAsyncClientなど) を構成し、KeyVaultPropertySourceにConfigurableEnvironmentを追加します。 -
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 へ
このガイドは、azure-spring-boot-starter-servicebus-jms のバージョン 3 からspring-cloud-azure-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 へ
このガイドは、azure-spring-boot-starter-storage のバージョン 3 からspring-cloud-azure-starter-storage-blobへの移行を支援することを目的としています。
一般的な情報については、次のリンクを使用してください。
- 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 へ
このガイドは、azure-spring-boot-starter-storage のバージョン 3 からspring-cloud-azure-starter-storage-file-shareへの移行を支援することを目的としています。
一般的な情報については、次のリンクを使用してください。
- 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 へ
このガイドは、azure-spring-cloud-starter-eventhubs のバージョン 2 から spring-cloud-azure-starter-integration-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}
手記
Microsoft では、使用可能な最も安全な認証フローを使用することをお勧めします。 この手順で説明する認証フロー (データベース、キャッシュ、メッセージング、AI サービスなど) には、アプリケーションに対する非常に高い信頼が必要であり、他のフローには存在しないリスクが伴います。 このフローは、パスワードレス接続やキーレス接続のマネージド ID など、より安全なオプションが有効でない場合にのみ使用します。 ローカル コンピューターの操作では、パスワードレス接続またはキーレス接続にユーザー ID を使用します。
API の変更
- リスナー注釈の変更については、<<migration-azure-spring-cloud-messaging、azure-spring-cloud-messaging>> ライブラリの移行ガイドを参照してください。
- サブスクライブ関数を持つ
EventHubOperationをクラスEventHubsMessageListenerContainerに移動し、送信関数をEventHubsTemplateに移動します。 - 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 へ
このガイドは、azure-spring-integration-eventhubs のバージョン 2 から spring-integration-azure-eventhubs への移行を支援することを目的としています。
- 4.0 の変更点の概要については、「
の概要 と移行の利点 セクション参照してください。 - プロジェクトの名前付けにおける戦略の変更の詳細については、「名前付けの変更」セクションを参照してください。
- すべての Spring Cloud Azure ライブラリに対して 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
API の変更
- サブスクライブ関数を持つ
EventHubOperationをクラスEventHubsMessageListenerContainerに移動し、送信関数をEventHubsTemplateに移動します。 - 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 へ
このガイドは、azure-spring-cloud-starter-servicebus のバージョン 2 から spring-cloud-azure-starter-integration-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-retries または spring.cloud.azure.servicebus.retry.fixed.max-retries、 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 の変更
- サブスクライブ関数を持つ
ServiceBusQueueOperationとServiceBusTopicOperationをドロップしてクラスServiceBusMessageListenerContainerに移動し、送信関数をServiceBusTemplateに移動します。 -
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を使用できます。 -
CompletableFutureとServiceBusTemplateでDefaultMessageHandlerサポートを削除し、代わりにReactorをサポートします。 -
ServiceBusTemplate#setDefaultEntityTypeの新しい API を追加してエンティティ型を指定します。これは、PropertiesSupplier<String, ProducerProperties>にProducerProperties#entityTypeの Bean が指定されていない場合に必要です。 - メッセージ ヘッダー
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 へ
このガイドは、azure-spring-integration-servicebus のバージョン 2 から spring-integration-azure-servicebus への移行を支援することを目的としています。
- 4.0 の変更点の概要については、「
の概要 と移行の利点 セクション参照してください。 - プロジェクトの名前付けにおける戦略の変更の詳細については、「名前付けの変更」セクションを参照してください。
- すべての Spring Cloud Azure ライブラリに対して 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
API の変更
- サブスクライブ関数を持つ
ServiceBusQueueOperationとServiceBusTopicOperationをドロップしてクラスServiceBusMessageListenerContainerに移動し、送信関数をServiceBusTemplateに移動します。 -
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を使用できます。 -
CompletableFutureとServiceBusTemplateでDefaultMessageHandlerサポートを削除し、代わりにReactorをサポートします。 -
ServiceBusTemplate#setDefaultEntityTypeの新しい API を追加してエンティティ型を指定します。これは、PropertiesSupplier<String, ProducerProperties>にProducerProperties#entityTypeの Bean が指定されていない場合に必要です。 - メッセージ ヘッダー
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 へ
このガイドは、azure-spring-cloud-starter-storage-queue のバージョン 2 から spring-cloud-azure-starter-integration-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を指定します。 -
checkpoint-modeのドロップStorageQueueTemplate構成では、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 へ
このガイドは、azure-spring-integration-storage-queue のバージョン 2 から spring-integration-azure-storage-queue への移行を支援することを目的としています。
- 4.0 の変更点の概要については、「
の概要 と移行の利点 セクション参照してください。 - プロジェクトの名前付けにおける戦略の変更の詳細については、「名前付けの変更」セクションを参照してください。
- すべての Spring Cloud Azure ライブラリに対して 1 つの BOM を使用する方法については、「BOM」セクションを参照してください。
API の変更
-
StorageQueueOperationを削除し、代わりにStorageQueueTemplateを指定します。 -
checkpoint-modeのドロップStorageQueueTemplate構成では、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 へ
このガイドは、azure-spring-cloud-stream-binder-eventhubs のバージョン 2 から spring-cloud-azure-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 から 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 |
手記
start-position 構成の値の型も、com.azure.spring.integration.core.api.StartPosition の列挙型から、各パーティションの map の StartPositionProperties に変更されます。 したがって、キーはパーティション ID であり、値はオフセット、シーケンス番号、エンキューされた日付時刻、および包括性のプロパティを含む com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties です。
構成移行の例
認証にconnection stringを使用し、上記のプロパティを移行するには、構成の変更を次に示します。
従来の構成:
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
手記
Microsoft では、使用可能な最も安全な認証フローを使用することをお勧めします。 この手順で説明する認証フロー (データベース、キャッシュ、メッセージング、AI サービスなど) には、アプリケーションに対する非常に高い信頼が必要であり、他のフローには存在しないリスクが伴います。 このフローは、パスワードレス接続やキーレス接続のマネージド ID など、より安全なオプションが有効でない場合にのみ使用します。 ローカル コンピューターの操作では、パスワードレス接続またはキーレス接続にユーザー ID を使用します。
接続文字列の代わりにセキュリティ プリンシパルを使用する場合、4.0 より前のバージョンでは、アプリケーションは最初に指定されたセキュリティ プリンシパルを使用して Azure Resource Manager (ARM) に接続し、ARM を使用して指定された名前空間のconnection stringを取得します。 最終的に、アプリケーションは取得したconnection stringを使用してAzure Event Hubsに接続します。 このようにして、指定されたセキュリティ プリンシパルを Contributor ロールと共に付与して、関連付けられているAzure Event Hubs名前空間を取得する必要があります。
Azure Spring Apps 4.0 では、認証にセキュリティ プリンシパルを利用する 2 つの方法が用意されています。 プリンシパルを使用して ARM に接続し、プリンシパルに Contributor ロールが必要な接続文字列を取得します。 もう 1 つでは、セキュリティ プリンシパルを利用してMicrosoft Entra IDに対する認証を行い、Azure Event Hubsに直接接続します。 この場合、Contributor ロールは不要になりましたが、メッセージング操作には他の Data 関連ロールが必要です。 Azure リソースにアクセスするための十分なアクセス許可がセキュリティ プリンシパルに付与されていることを確認するには、「
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}
手記
tenant-id に使用できる値は、common、organizations、consumers、またはテナント ID です。 これらの値の詳細については、「エラー AADSTS50020 - ID プロバイダーのユーザー アカウントがテナントに存在しない」の「間違ったエンドポイント (個人用アカウントと organization アカウント) を使用しました」セクションを参照してください。 シングルテナント アプリの変換については、「convert single-tenant app to multitenant on 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}
手記
tenant-id に使用できる値は、common、organizations、consumers、またはテナント ID です。 これらの値の詳細については、「エラー AADSTS50020 - ID プロバイダーのユーザー アカウントがテナントに存在しない」の「間違ったエンドポイント (個人用アカウントと organization アカウント) を使用しました」セクションを参照してください。 シングルテナント アプリの変換については、「convert single-tenant app to multitenant on 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}
手記
tenant-id に使用できる値は、common、organizations、consumers、またはテナント ID です。 これらの値の詳細については、「エラー AADSTS50020 - ID プロバイダーのユーザー アカウントがテナントに存在しない」の「間違ったエンドポイント (個人用アカウントと organization アカウント) を使用しました」セクションを参照してください。 シングルテナント アプリの変換については、「convert single-tenant app to multitenant on 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され、1 つの 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-retries または spring.cloud.azure.servicebus.retry.fixed.max-retries、 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 |
手記
sessionsEnabled が true の場合はコンカレンシー プロパティが maxConcurrentSessions に置き換えられ、sessionsEnabled が falseされている場合は maxConcurrentCalls に置き換えられます。
手記
オートコンプリートの有効化は、チェックポイント モード 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
手記
Microsoft では、使用可能な最も安全な認証フローを使用することをお勧めします。 この手順で説明する認証フロー (データベース、キャッシュ、メッセージング、AI サービスなど) には、アプリケーションに対する非常に高い信頼が必要であり、他のフローには存在しないリスクが伴います。 このフローは、パスワードレス接続やキーレス接続のマネージド ID など、より安全なオプションが有効でない場合にのみ使用します。 ローカル コンピューターの操作では、パスワードレス接続またはキーレス接続にユーザー ID を使用します。
接続文字列の代わりにセキュリティ プリンシパルを使用する場合、4.0 より前のバージョンでは、アプリケーションは最初に指定されたセキュリティ プリンシパルを使用して Azure Resource Manager (ARM) に接続し、ARM を使用して指定された名前空間のconnection stringを取得します。 最終的に、アプリケーションは取得したconnection stringを使用してAzure Service Busに接続します。 このようにして、指定されたセキュリティ プリンシパルを Contributor ロールで付与し、関連付けられているAzure Service Bus名前空間を取得する必要があります。
Azure Spring Apps 4.0 では、認証にセキュリティ プリンシパルを利用する 2 つの方法が用意されています。 プリンシパルを使用して ARM に接続し、プリンシパルに Contributor ロールが必要な接続文字列を取得します。 もう 1 つでは、セキュリティ プリンシパルを利用してMicrosoft Entra IDに対する認証を行い、Azure Service Busに直接接続します。 この場合、Contributor ロールは不要になりましたが、メッセージング操作には他の Data 関連ロールが必要です。 Azure リソースにアクセスするための十分なアクセス許可がセキュリティ プリンシパルに付与されていることを確認するには、「
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}
手記
tenant-id に使用できる値は、common、organizations、consumers、またはテナント ID です。 これらの値の詳細については、「エラー AADSTS50020 - ID プロバイダーのユーザー アカウントがテナントに存在しない」の「間違ったエンドポイント (個人用アカウントと organization アカウント) を使用しました」セクションを参照してください。 シングルテナント アプリの変換については、「convert single-tenant app to multitenant on 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}
手記
tenant-id に使用できる値は、common、organizations、consumers、またはテナント ID です。 これらの値の詳細については、「エラー AADSTS50020 - ID プロバイダーのユーザー アカウントがテナントに存在しない」の「間違ったエンドポイント (個人用アカウントと organization アカウント) を使用しました」セクションを参照してください。 シングルテナント アプリの変換については、「convert single-tenant app to multitenant on 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}
手記
tenant-id に使用できる値は、common、organizations、consumers、またはテナント ID です。 これらの値の詳細については、「エラー AADSTS50020 - ID プロバイダーのユーザー アカウントがテナントに存在しない」の「間違ったエンドポイント (個人用アカウントと organization アカウント) を使用しました」セクションを参照してください。 シングルテナント アプリの変換については、「convert single-tenant app to multitenant on 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 注釈は現在サポートされていません。