Migrationshandbuch für Spring Cloud Azure 4.0
Dieser Leitfaden hilft bei der Migration zu Spring Cloud Azure 4.0 aus älteren Azure Spring-Bibliotheken.
Einführung
Wir rufen Bibliotheken auf, deren Gruppen-ID und Artefakt-ID dem Muster com.azure.spring:spring-cloud-azure-*
der modernen Bibliotheken entsprechen, und denen mit Mustern com.azure.spring:azure-spring-boot-*
, com.azure.spring:azure-spring-cloud-*
oder com.azure.spring:azure-spring-integration-*
den Legacybibliotheken .
Dieser Leitfaden konzentriert sich auf parallele Vergleiche für ähnliche Konfigurationen zwischen den modernen und älteren Bibliotheken.
Vertrautheit mit com.azure.spring:azure-spring-boot-*
oder com.azure.spring:azure-spring-cloud-*
com.azure.spring:azure-spring-integration-*
Paket wird vorausgesetzt.
Wenn Sie noch nicht mit den Spring Cloud Azure 4.0-Bibliotheken arbeiten, lesen Sie das Spring Cloud Azure-Entwicklerhandbuch anstelle dieses Leitfadens.
Vorteile der Migration
Eine natürliche Frage zu stellen, wenn Sie überlegen, ob eine neue Version oder Bibliothek angenommen werden soll, ist ihre Vorteile. Da Azure reift und von einer vielfältigen Gruppe von Entwicklern übernommen wurde, haben wir uns darauf konzentriert, die Muster und Methoden zu erlernen, um die Produktivität von Entwicklern zu verbessern und die Lücken zu verstehen, die die Spring Cloud Azure-Bibliotheken aufweisen.
Es gab mehrere Bereiche eines konsistenten Feedbacks, das in den Spring Cloud Azure-Bibliotheken ausgedrückt wurde. Am wichtigsten ist, dass die Bibliotheken für verschiedene Azure-Dienste nicht den vollständigen Satz von Konfigurationen aktiviert haben. Darüber hinaus hat die Inkonsistenz der Projektbenennung, Artefakt-IDs, Versionen und Konfigurationen die Lernkurve steil gestaltet.
Um die Entwicklungserfahrung in Spring Cloud Azure-Bibliotheken zu verbessern, wurde eine Reihe von Designrichtlinien eingeführt, um sicherzustellen, dass Spring Cloud Azure-Bibliotheken ein natürliches und idiomatisches Verhalten im Hinblick auf das Spring-Ökosystem haben. Weitere Details finden Sie im Designdokument für interessierte Personen.
Spring Cloud Azure 4.0 bietet die gemeinsame Erfahrung in Bibliotheken, die in verschiedene Spring-Projekte integriert werden, z. B. Spring Boot, Spring Integration, Spring Cloud Stream usw. Die gemeinsame Benutzeroberfläche umfasst:
- Eine einheitliche BOM, die alle Spring Cloud Azure 4.0-Bibliotheken enthält.
- Eine konsistente Benennungskonvention für Artefakte.
- Eine einheitliche Möglichkeit zum Konfigurieren von Anmeldeinformationen, Proxy, Wiederholung, Cloudumgebung und Transportebeneneinstellungen.
- Unterstützen aller Authentifizierungsmethoden, die ein Azure Service- oder Azure Service SDK unterstützt.
Überblick
Dieser Migrationsleitfaden besteht aus den folgenden Abschnitten:
- Namensänderungen für Spring Cloud Azure 4.0
- Artefaktänderungen: umbenannt/hinzugefügt/gelöscht
- Abhängigkeitsänderungen
- Authentifizierungsänderungen
- Konfigurationseigenschaften
- Breaking Changes bei der API
- Bibliotheksänderungen
Benennungsänderungen
Es gab nie einen konsistenten oder offiziellen Namen, um alle Spring Cloud Azure-Bibliotheken aufzurufen. Einige von ihnen wurden aufgerufen Azure Spring Boot
und einige von ihnen Spring on Azure
. Seit 4.0 haben wir begonnen, den Projektnamen Spring Cloud Azure
zu verwenden, um alle Azure Spring-Bibliotheken darzustellen.
Stückliste
Wir haben verwendet, zwei BOMs für unsere Bibliotheken, die azure-spring-boot-bom
und azure-spring-cloud-dependencies
, aber wir kombinierten diese beiden BOMs in einer BOM seit 4.0, der spring-cloud-azure-dependencies
. Fügen Sie einen Eintrag im dependencyManagement
Abschnitt Ihres Projekts hinzu, um von der Abhängigkeitsverwaltung zu profitieren.
<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>
Hinweis
Wenn Sie Spring Boot 3.x verwenden, stellen Sie sicher, dass Sie die spring-cloud-azure-dependencies
Version auf 5.8.0
.
Weitere Informationen zur spring-cloud-azure-dependencies
Version finden Sie unter Welche Version von Spring Cloud Azure sollte ich verwenden.
Artefaktänderungen: umbenannt/hinzugefügt/gelöscht
Gruppen-IDs sind für moderne und ältere Spring Cloud Azure-Bibliotheken identisch. Sie sind alle com.azure.spring
. Artefakt-IDs für die modernen Spring Cloud Azure-Bibliotheken wurden geändert. Nach welchem Spring-Projekt es gehört, Spring Boot, Spring Integration oder Spring Cloud Stream, könnte das Artefakt-IDs-Muster sein spring-cloud-azure-starter-[service]
, spring-integration-azure-[service]
oder spring-cloud-azure-stream-binder-[service]
. Die Legacystarter für jede haben eine Artefakt-ID nach dem Muster azure-spring-*
. Dies bietet ein schnelles und barrierefreies Mittel, um auf einen Blick zu verstehen, ob Sie moderne oder ältere Starter verwenden.
Im Prozess der Entwicklung von Spring Cloud Azure 4.0 haben wir einige Artefakte umbenannt, um sie den neuen Benennungskonventionen zu folgen, einige Artefakte gelöscht, sodass die Funktionalität in ein geeigneteres Artefakt eingefügt und einige neue Artefakte hinzugefügt wurden, um einige Szenarien besser zu bedienen.
Die folgende Tabelle zeigt die Zuordnungen zwischen legacyartefakt-ID und moderner Artefakt-ID:
Legacyartefakte-ID | Moderne Artefakt-ID | Beschreibung |
---|---|---|
azure-spring-boot-starter | spring-cloud-azure-starter | Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem neuen spring-cloud-azure-starter Artefakt zusammengeführt werden. |
azure-spring-boot-starter-active-directory | spring-cloud-azure-starter-active-directory | Das Artefakt wurde umbenannt. |
azure-spring-boot-starter-active-directory-b2c | spring-cloud-azure-starter-active-directory-b2c | Das Artefakt wurde umbenannt. |
azure-spring-boot-starter-cosmos | spring-cloud-azure-starter-data-cosmos | Das hinzuzufügende data Artefakt wurde umbenannt, der mit Spring Data Azure Cosmos DB angibt. |
azure-spring-boot-starter-keyvault-certificates | nicht zutreffend | Nicht in dieser Version enthalten, wird aber in späterer Version unterstützt. |
azure-spring-boot-starter-keyvault-secrets | spring-cloud-azure-starter-keyvault-secrets | Das Artefakt wurde umbenannt. |
azure-spring-boot-starter-servicebus-jms | spring-cloud-azure-starter-servicebus-jms | Das Artefakt wurde umbenannt. |
Azure-spring-boot-starter-storage | spring-cloud-azure-starter-storage-blob spring-cloud-azure-starter-storage-file-share |
Das Legacyartefakt enthält die Funktionalität von Storage Blob und Dateifreigabe, es wurde in zwei separate Artefakte in 4.0, spring-cloud-azure-starter-storage-blob und spring-cloud-azure-starter-storage-file-share kompliziert. |
azure-spring-boot | nicht zutreffend | Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem neuen spring-cloud-azure-autoconfigure Artefakt zusammengeführt werden. |
azure-spring-cloud-autoconfigure | nicht zutreffend | Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem neuen spring-cloud-azure-autoconfigure Artefakt zusammengeführt werden. |
Azure-spring-cloud-context | nicht zutreffend | Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit den neuen spring-cloud-azure-autoconfigure und spring-cloud-azure-resourcemanager Artefakten zusammengeführt werden. |
azure-spring-cloud-messaging | spring-messaging-azure | Die Messaginglisteneranmerkung wurde gelöscht. |
azure-spring-cloud-starter-cache | nicht zutreffend | Dieses Artefakt wurde für die Verwendung von Redis einfach spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager und spring-cloud-azure-starter gelöscht. Weitere Informationen zur Verwendung finden Sie unter Spring Cloud Azure Redis-Support. |
azure-spring-cloud-starter-eventhubs-kafka | nicht zutreffend | Dieses Artefakt wurde für die Verwendung von Kafka gelöscht, fügen Sie einfach spring kafka, spring-cloud-azure-resourcemanager und spring-cloud-azure-starter hinzu. Weitere Informationen zur Verwendung finden Sie unter Spring Cloud Azure Kafka-Support. |
azure-spring-cloud-starter-eventhubs | spring-cloud-azure-starter-integration-eventhubs | Das hinzuzufügende integration Artefakt wurde umbenannt, das die Spring-Integration mit Event Hubs angibt. |
azure-spring-cloud-starter-servicebus | spring-cloud-azure-starter-integration-servicebus | Das hinzugefügte Artefakt integration wurde umbenannt, der die Federintegration mit Service Bus angibt. |
Azure-spring-cloud-starter-storage-queue | spring-cloud-azure-starter-integration-storage-queue | Das hinzuzufügende integration Artefakt wurde umbenannt, das die Federintegration in die Speicherwarteschlange angibt. |
Azure-spring-Cloud-Speicher | nicht zutreffend | Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem neuen spring-cloud-azure-autoconfigure Artefakt zusammengeführt wurden. |
azure-spring-cloud-stream-binder-eventhubs | spring-cloud-azure-stream-binder-eventhubs | Dieses Artefakt wurde mithilfe eines neuen Designs Standard und spring-cloud-azure-stream-binder-eventhubs spring-cloud-azure-stream-binder-eventhubs-core umgestaltet. |
azure-spring-cloud-stream-binder-service-core | spring-cloud-azure-stream-binder-servicebus-core | Das Artefakt wurde umbenannt. |
azure-spring-cloud-stream-binder-servicebus-queue | spring-cloud-azure-stream-binder-servicebus | Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem spring-cloud-azure-stream-binder-servicebus Artefakt zusammengeführt werden. |
Azure-spring-cloud-stream-binder-servicebus-topic | spring-cloud-azure-stream-binder-servicebus | Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem spring-cloud-azure-stream-binder-servicebus Artefakt zusammengeführt werden. |
azure-spring-integration-core | spring-integration-azure-core | Das Artefakt wurde umbenannt. |
azure-spring-integration-eventhubs | spring-integration-azure-eventhubs | Benennen Sie das Artefakt um. |
azure-spring-integration-servicebus | spring-integration-azure-servicebus | Benennen Sie das Artefakt um. |
Azure-spring-integration-storage-queue | spring-integration-azure-storage-queue | Benennen Sie das Artefakt um. |
nicht zutreffend | spring-cloud-azure-aktor | Das neu hinzugefügte Spring Cloud Azure Actuator Artefakt. |
nicht zutreffend | spring-cloud-azure-actuator-autoconfigure | Das neu hinzugefügte Spring Cloud Azure Actuator AutoConfigure-Artefakt, einschließlich der automatischen Konfiguration für Aktoren. |
nicht zutreffend | spring-cloud-azure-autoconfigure | Neu hinzugefügtes Spring Cloud Azure AutoConfigure-Artefakt, einschließlich aller automatischen Konfiguration für SDK-Clients, Spring Security-Unterstützung, Spring Data-Unterstützung und Spring Integration-Unterstützung. |
nicht zutreffend | spring-cloud-azure-core | Neu hinzugefügtes Spring Cloud Azure Core-Artefakt, einschließlich aller Kernfunktionen. |
nicht zutreffend | spring-cloud-azure-resourcemanager | Neu hinzugefügtes Ressourcen-Manager-Artefakt. Es ist die Kernbibliothek mit Azure Resource Manager, um Metadaten zu lesen und Ressourcen zu erstellen. |
nicht zutreffend | spring-cloud-azure-service | Neu hinzugefügtes Spring Cloud Azure Service-Artefakt, einschließlich Abstraktionen für Azure-Dienste. |
nicht zutreffend | spring-cloud-azure-starter-appconfiguration | Neu hinzugefügter Start für die Verwendung Azure-App Configuration SDK-Clients. |
nicht zutreffend | spring-cloud-azure-starter-cosmos | Neu hinzugefügter Start für die Verwendung des Azure Cosmos DB SDK-Clients. |
nicht zutreffend | spring-cloud-azure-starter-eventhubs | Neu hinzugefügter Start für die Verwendung des Azure Event Hubs SDK-Clients. |
nicht zutreffend | spring-cloud-azure-starter-servicebus | Neu hinzugefügter Start für die Verwendung des Azure Service Bus SDK-Clients. |
nicht zutreffend | spring-cloud-azure-starter-storage-blob | Neu hinzugefügter Start für die Verwendung des Azure Storage Blob SDK-Clients. |
nicht zutreffend | spring-cloud-azure-starter-storage-file-share | Neu hinzugefügter Start für die Verwendung des Azure Storage File Share SDK-Clients. |
nicht zutreffend | spring-cloud-azure-starter-storage-queue | Neu hinzugefügter Start für die Verwendung des Azure Storage Queue SDK-Clients. |
nicht zutreffend | spring-cloud-azure-starter-stream-eventhubs | Neu hinzugefügter Start für die Verwendung von Azure Event Hubs Spring Cloud Stream Binder. |
nicht zutreffend | spring-cloud-azure-starter-stream-servicebus | Neu hinzugefügter Start für die Verwendung von Azure Service Bus Spring Cloud Stream Binder |
nicht zutreffend | spring-cloud-azure-stream-binder-eventhubs-core | Neu hinzugefügtes Spring Cloud Stream-Kernelement für Azure Event Hubs. |
Abhängigkeitsänderungen
Einige unnötige Abhängigkeiten wurden in den älteren Artefakten enthalten, die wir in den modernen Spring Cloud Azure 4.0-Bibliotheken entfernt haben. Achten Sie darauf, die entfernten Abhängigkeiten manuell zu Ihrem Projekt hinzuzufügen, um Abstürze zu verhindern.
Bibliotheken mit Abhängigkeitsänderungen umfassen:
- spring-cloud-azure-starter
- spring-cloud-azure-starter-active-directory
- spring-cloud-azure-starter-active-directory-b2c
Authentifizierungsänderungen
Spring Cloud Azure 4.0 unterstützt alle Authentifizierungsmethoden, die jedes Azure Service SDK unterstützt. Damit können Sie globale Tokenanmeldeinformationen konfigurieren sowie die Tokenanmeldeinformationen auf jeder Dienstebene bereitstellen. Zum Konfigurieren von Spring Cloud Azure 4.0 ist jedoch keine Anmeldeinformationen erforderlich, da sie die in einer lokalen Entwicklungsumgebung oder verwalteten Identität in Azure Services gespeicherten Anmeldeinformationen anwenden kann. Stellen Sie nur sicher, dass dem Prinzipal ausreichende Berechtigungen für den Zugriff auf die Azure-Zielressourcen erteilt wurden.
Hinweis
Wenn Sie den Sicherheitsprinzipalen Rollen für die Interaktion mit Azure-Messagingdiensten zuweisen, sind die zugehörigen Rollen für die Data
Durchführung von Messagingvorgängen erforderlich. Für Azure Spring Apps Stream Event Hubs /Service Bus Binder-Bibliotheken ist die Rolle erforderlich, Contributor
wenn die Funktion der automatischen Erstellung von Ressourcen erforderlich ist. Weitere Informationen finden Sie unter Integrierte Azure-Rollen.
Eine verkettete Anmeldeinformation, der DefaultAzureCredential
Bean ist standardmäßig automatisch konfiguriert und wird von allen Komponenten verwendet, wenn keine weiteren Authentifizierungsinformationen angegeben werden. Weitere Informationen finden Sie im Abschnitt "DefaultAzureCredential " der Azure Identity-Clientbibliothek für Java.
Konfigurationseigenschaften
Eigenschaftenmigration
Wir haben eine zusätzliche Spring-configuration-metadata.json-Datei erstellt, um die Eigenschaftsmigration bei Verwendung mit spring-boot-properties-migrator
zu glätten. Fügen Sie zunächst der Anwendung den folgenden Eigenschafts-Migrationsdienst hinzu:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
Oder wenn Sie Gradle verwenden:
runtime("org.springframework.boot:spring-boot-properties-migrator")
Wenn Sie die App ausführen, werden die Eigenschaften identifiziert, die von Spring Cloud Azure nicht mehr verwaltet werden. Wenn ein Ersatz vorhanden ist, wird die Eigenschaft vorübergehend mit einer Warnung neu zugeordnet. Wenn kein Ersatz vorhanden ist, erhalten Sie in einem Fehlerbericht weitere Informationen. Auf beide Weise muss die Konfiguration aktualisiert und die Abhängigkeit entfernt werden, nachdem Sie die Konfiguration aktualisiert haben.
Bevor Sie fortfahren, empfiehlt es sich, die Suchfunktion Ihrer IDE zu verwenden, um zu überprüfen, ob Sie keine der Eigenschaften verwenden, die Sie in einem Integrationstest migriert haben.
Hinweis
Wir haben viele Konfigurationseigenschaften in dieser Änderung geändert. Die Verwendung der spring-boot-properties-migrator
Daten trägt dazu bei, die Migration zu glätten.
Globale Konfigurationen
Mit der modernen spring-cloud-azure-starter
Option können Sie Eigenschaften definieren, die für alle Azure-SDKs im Namespace spring.cloud.azure
gelten. Dieses Feature wurde in der Legacyversion azure-spring-boot-starter
nicht unterstützt. Die globalen Konfigurationen können in fünf Kategorien unterteilt werden, die in der folgenden Tabelle dargestellt sind:
Präfix | Beschreibung |
---|---|
spring.cloud.azure.client | Konfiguriert die Transportclients unter jedem Azure SDK. |
spring.cloud.azure.credential | Konfiguriert, wie die Authentifizierung mit der Microsoft Entra-ID funktioniert. |
spring.cloud.azure.profile | Konfiguriert die Azure-Cloudumgebung. |
spring.cloud.azure.proxy | Konfiguriert die Proxyoptionen, die für alle Azure SDK-Clients gelten. |
spring.cloud.azure.retry | Konfiguriert die Wiederholungsoptionen, die für alle Azure SDK-Clients gelten. Die Wiederholungsoptionen haben einen Teil der SDKs unterstützt, es gibt keine spring.cloud.azure.cosmos.retry . |
Eine vollständige Liste der Konfigurationen finden Sie unter Spring Cloud Azure-Konfigurationseigenschaften.
Konfigurieren der einzelnen SDK-Dateien
Ausführliche Informationen zu den Konfigurationsoptionen auf SDK-Ebene finden Sie unter den folgenden Links:
- Von azure-spring-boot-starter-active-directory bis spring-cloud-azure-starter-active-directory
- Von azure-spring-boot-starter-active-directory-b2c bis spring-cloud-azure-starter-active-directory-b2c
- Von azure-spring-boot-starter-cosmos bis spring-cloud-azure-starter-data-cosmos
- Von azure-spring-boot-starter-keyvault-secrets bis spring-cloud-azure-starter-keyvault-secrets
- Von azure-spring-boot-starter-servicebus-jms bis spring-cloud-azure-starter-servicebus-jms
- Von azure-spring-boot-starter-storage bis spring-cloud-azure-starter-storage-blob
- Von azure-spring-boot-starter-storage bis spring-cloud-azure-starter-storage-file-share
- Von azure-spring-cloud-starter-eventhubs bis spring-cloud-azure-starter-integration-eventhubs
- Von azure-spring-cloud-starter-servicebus bis spring-cloud-azure-starter-integration-servicebus
- Von azure-spring-cloud-starter-storage-queue bis spring-cloud-azure-starter-integration-storage-queue
- Von azure-spring-cloud-stream-binder-eventhubs bis spring-cloud-azure-stream-binder-eventhubs
- Von azure-spring-cloud-stream-binder-servicebus-* bis spring-cloud-azure-stream-binder-servicebus
Breaking Changes bei der API
Ausführliche Informationen zu änderungen am API-Bruch in den einzelnen Bibliotheken erhalten Sie unter den folgenden Links:
- Von azure-spring-boot-starter-active-directory bis spring-cloud-azure-starter-active-directory
- Von azure-spring-boot-starter-active-directory-b2c bis spring-cloud-azure-starter-active-directory-b2c
- Von azure-spring-boot-starter-storage bis spring-cloud-azure-starter-storage-blob
- Von azure-spring-boot-starter-storage bis spring-cloud-azure-starter-storage-file-share
- Von azure-spring-cloud-starter-eventhubs bis spring-cloud-azure-starter-integration-eventhubs
- Von azure-spring-integration-eventhubs bis spring-integration-azure-eventhubs
- Von azure-spring-cloud-starter-servicebus bis spring-cloud-azure-starter-integration-servicebus
- Vom azure-spring-integration-servicebus zum spring-integration-azure-servicebus
- Von azure-spring-cloud-starter-storage-queue bis spring-cloud-azure-starter-integration-storage-queue
- Von azure-spring-integration-storage-queue bis spring-integration-azure-storage-queue
- Von azure-spring-cloud-stream-binder-eventhubs bis spring-cloud-azure-stream-binder-eventhubs
- Von azure-spring-cloud-stream-binder-servicebus-* bis spring-cloud-azure-stream-binder-servicebus
Bibliotheksänderungen
Die Änderungen in den einzelnen Bibliotheken werden wie folgt eingeführt.
Von azure-spring-boot-starter bis spring-cloud-azure-starter
Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter ab Version 3 von azure-spring-boot-starter unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
Abhängigkeitsänderungen
Einige unnötige Abhängigkeiten wurden in den älteren Artefakten enthalten, die wir in den modernen Spring Cloud Azure 4.0-Bibliotheken entfernt haben. Achten Sie darauf, die entfernten Abhängigkeiten manuell zu Ihrem Projekt hinzuzufügen, um unbeabsichtigten Absturz zu verhindern.
Die folgende Tabelle zeigt die entfernten Abhängigkeiten:
Entfernte Abhängigkeiten | Beschreibung |
---|---|
org.springframework.boot:spring-boot-starter-validation | Schließen Sie den Überprüfungsstarter ein, wenn Sie "Hibernate Validator" verwenden möchten. |
Von azure-spring-boot-starter-active-directory bis spring-cloud-azure-starter-active-directory
Dieses Handbuch soll die Migration zu spring-cloud-azure-starter-active-directory ab Version 3 von azure-spring-boot-starter-active-directory unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
Abhängigkeitsänderungen
Einige unnötige Abhängigkeiten im Legacyartefakt wurden seit der modernen Spring Cloud Azure 4.0-Bibliothek entfernt. Fügen Sie diese entfernten Abhängigkeiten zu Ihrem Projekt hinzu, um unbeabsichtigten Absturz zu verhindern.
Die folgende Tabelle zeigt die entfernten Abhängigkeiten:
Entfernte Abhängigkeiten | Beschreibung |
---|---|
com.fasterxml.jackson.core:jackson-databind | Fügen Sie diese Abhängigkeit bei Bedarf zu Ihrem Projekt hinzu. |
io.projectreactor.netty:reactor-netty | Fügen Sie diese Abhängigkeit bei Bedarf zu Ihrem Projekt hinzu. |
org.springframework.boot:spring-boot-starter-validation | Fügen Sie diese Abhängigkeit bei Bedarf zu Ihrem Projekt hinzu. |
org.springframework.boot:spring-boot-starter-webflux | Fügen Sie diese Abhängigkeit bei Bedarf zu Ihrem Projekt hinzu. |
SDK-Konfigurationsänderungen
Dieser Abschnitt enthält die Änderungen zu den hinzugefügten, entfernten und geänderten Eigenschaften.
- Die folgenden beiden Punkte sind die Standard, auf die Sie achten müssen:
- Das Präfix aller Konfigurationseigenschaftennamen wurde von zu
spring.cloud.azure.active-directory
" geändert.azure.activedirectory
- Neue Eigenschaft
spring.cloud.azure.active-directory.enabled
wird hinzugefügt, um Microsoft Entra-bezogene Features zu aktivieren/zu deaktivieren. Der Standardwert istfalse
.
Die folgende Tabelle zeigt die Eigenschaftenzuordnungen zwischen azure-spring-boot-starter-active-directory
und spring-cloud-azure-starter-active-directory
:
Legacyeigenschaften | Moderne Eigenschaften |
---|---|
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 | Weitere Informationen finden Sie in der folgenden Tabelle. |
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-lebensdauer | spring.cloud.azure.active-directory.jwk-set-cache-lebensdauer. |
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 |
Der Werttyp der folgenden Eigenschaften wird von
long
:Duration
jwt-connect-timeout
jwt-read-timeout
jwk-set-cache-lifespan
jwk-set-cache-refresh-time
.
Die folgenden Eigenschaften werden entfernt:
- azure.activedirectory.allow-telemetry
- azure.activedirectory.user-group.enable-full-list
- azure.activedirectory.graph-base-uri
- azure.activedirectory.graph-membership-uri
Die folgenden Eigenschaften werden hinzugefügt:
- 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
Hinweis
Die Funktion von azure.activedirectory.graph-membership-uri
wurde durch 2 Eigenschaften ersetzt: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
und spring.cloud.azure.active-directory.user-group.use-transitive-members
. Die erste Eigenschaft wird verwendet, um den Hostnamen anzugeben, und das zweite flag für die Verwendung des URL-Pfads: v1.0/me/memberOf
oder v1.0/me/transitiveMemberOf
.
Hier sind einige Beispiele für die Migration:
Beispiel 1: Fall 1
Für Legacy: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf
Für modern: 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
Beispiel 2: Fall 2
Für Legacy: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf
Für modern: 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-Änderungen
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-active-directory
:spring-cloud-azure-starter-active-directory
Legacyklasse | Moderne Klasse |
---|---|
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 |
In diesem Abschnitt werden die entfernten Klassen aus azure-spring-boot-starter-active-directory aufgelistet.
Legacyklasse entfernt
- com.azure.spring.aad.webapp.AADHandleConditionalAccessFilter
- com.azure.spring.aad.webapi.validator.AADJwtAudienceValidator
- com.azure.spring.aad.webapi.validator.AADJwtClaimValidator
Von azure-spring-boot-starter-active-directory-b2c bis spring-cloud-azure-starter-active-directory-b2c
Dieses Handbuch soll die Migration zu spring-cloud-azure-starter-active-directory-b2c ab Version 3 von azure-spring-boot-starter-active-directory-b2c unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
Abhängigkeitsänderungen
Einige unnötige Abhängigkeiten wurden in den älteren Artefakten enthalten, die wir in den modernen Spring Cloud Azure 4.0-Bibliotheken entfernt haben. Achten Sie darauf, die entfernten Abhängigkeiten manuell zu Ihrem Projekt hinzuzufügen, um unbeabsichtigten Absturz zu verhindern.
Die folgende Tabelle zeigt die entfernten Abhängigkeiten:
Entfernte Abhängigkeiten | Beschreibung |
---|---|
org.springframework.boot:spring-boot-starter-validation | Schließen Sie den Überprüfungsstarter ein, wenn Sie "Hibernate Validator" verwenden möchten. |
SDK-Konfigurationsänderungen
Dieser Abschnitt enthält die Änderungen zu den hinzugefügten, entfernten und geänderten Eigenschaften.
- Die folgenden beiden Punkte sind die Standard, auf die Sie achten müssen:
- Alle Konfigurationseigenschaftennamen haben das Präfix von
azure.activedirectory.b2c
zu " geändertspring.cloud.azure.active-directory.b2c
. - Neue Eigenschaft
spring.cloud.azure.active-directory.b2c.enabled
wird hinzugefügt, um Azure AD B2C-bezogene Features zu aktivieren/zu deaktivieren. Der Standardwert ist „FALSE“.
In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-boot-starter-active-directory-b2c
zu spring-cloud-azure-starter-active-directory-b2c
:
Legacyeigenschaften | Moderne Eigenschaften |
---|---|
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 |
Eigenschaften aus azure-spring-boot-starter-active-directory-b2c entfernt:
- azure.activedirectory.b2c.allow-telemetry
- azure.activedirectory.b2c.tenant
Der Werttyp der folgenden Eigenschaften wird von
long
:Duration
- jwt-connect-timeout
- jwt-read-timeout
API-Änderungen
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-active-directory-b2c
:spring-cloud-azure-starter-active-directory-b2c
Legacyklasse | Moderne Klasse |
---|---|
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 |
Von azure-spring-boot-starter-cosmos bis spring-cloud-azure-starter-data-cosmos
Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-data-cosmos ab Version 3 von azure-spring-boot-starter-cosmos unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
SDK-Konfigurationsänderungen
Alle Konfigurationseigenschaftennamen haben das Präfix von azure.cosmos
zu " geändert spring.cloud.azure.cosmos
.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-cosmos
:spring-cloud-azure-starter-data-cosmos
Legacyeigenschaften | Moderne Eigenschaften |
---|---|
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 |
Von azure-spring-boot-starter-keyvault-secrets bis spring-cloud-azure-starter-keyvault-secrets
Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-keyvault-secrets ab Version 3 von azure-spring-boot-starter-keyvault-secrets unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
SDK-Konfigurationsänderungen
Dieser Abschnitt enthält die Änderungen zu den hinzugefügten, entfernten und geänderten Eigenschaften.
In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-boot-starter-keyvault-secrets
zu spring-cloud-azure-starter-keyvault-secrets
:
Legacyeigenschaften | Moderne Eigenschaften |
---|---|
azure.keyvault.case-sensitive-keys | spring.cloud.azure.keyvault.secret.property-source[n].Groß-/Kleinschreibung beachten |
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 and spring.cloud.azure.keyvault.secret.property-source-enabled |
azure.keyvault.order | Nicht mehr unterstützt. Verwenden Sie stattdessen die Reihenfolge in 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 |
- Eigenschaften aus spring-cloud-azure-starter-keyvault-secrets entfernt
azure.keyvault.allow-telemetry azure.keyvault.order
Die folgenden Punkte sollten Sie beachten:
- Alle Konfigurationseigenschaftennamen haben das Präfix von
azure.keyvault
zu " geändertspring.cloud.azure.keyvault.secret
. spring.cloud.azure.keyvault.secret.enabled
wird verwendet, um alle Key Vault Secret-Features zu aktivieren, einschließlich der Konfiguration des geheimen Schlüsseltresor-Clientbohnen (wieSecretClient
undSecretAsyncClient
) und hinzufügen.KeyVaultPropertySource
ConfigurableEnvironment
spring.cloud.azure.keyvault.secret.property-source-enabled
wird verwendet, um alleKeyVaultPropertySource
zu aktivieren. Es wird nur wirksam, wennspring.cloud.azure.keyvault.secret.enabled=true
.- Für allgemeine Azure-Eigenschaften (z
client
. B. , ,proxy
,credential
retry
,profile
) und Key Vault-Eigenschaften (zendpoint
. B. ,service-version
). Wennspring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME
sie nicht konfiguriert ist,spring.cloud.azure.keyvault.secret.PROPERTY_NAME
wird sie verwendet. spring.cloud.azure.keyvault.secret.property-sources[n].resource
ist spezifisch für eine eindeutige Azure-Ressource. Wenn sie also nicht konfiguriert ist, erhält sie keinen Wert von anderen Orten.
Von azure-spring-boot-starter-servicebus-jms bis spring-cloud-azure-starter-servicebus-jms
Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-servicebus-jms ab Version 3 von azure-spring-boot-starter-servicebus-jms unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
SDK-Konfigurationsänderungen
Konfigurationstyp für spring.jms.servicebus.idle-timeout
den Wechsel von long
(Millisekunden) in Duration
ein Muster zur Lesbarkeit.
Von azure-spring-boot-starter-storage bis spring-cloud-azure-starter-storage-blob
Dieses Handbuch soll die Migration zu spring-cloud-azure-starter-storage-blob ab Version 3 von Azure-spring-boot-starter-storage unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
SDK-Konfigurationsänderungen
Alle Konfigurationseigenschaftennamen haben das Präfix von azure.storage
zu " geändert spring.cloud.azure.storage.blob
.
In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-boot-starter-storage
zu spring-cloud-azure-starter-storage-blob
:
Legacyeigenschaften | Moderne Eigenschaften |
---|---|
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-Änderungen
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-storage
:spring-cloud-azure-starter-storage-blob
Legacyklasse | Moderne Klasse |
---|---|
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 |
Von azure-spring-boot-starter-storage bis spring-cloud-azure-starter-storage-file-share
Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-storage-file-share ab Version 3 von azure-spring-boot-starter-storage unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
SDK-Konfigurationsänderungen
Alle Konfigurationseigenschaftennamen haben das Präfix von azure.storage
zu " geändert spring.cloud.azure.storage.fileshare
.
In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-boot-starter-storage
zu spring-cloud-azure-starter-storage-file-share
:
Legacyeigenschaften | Moderne Eigenschaften |
---|---|
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-Änderungen
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-storage
:spring-cloud-azure-starter-storage-file-share
Legacyklasse | Moderne Klasse |
---|---|
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 |
Von azure-spring-cloud-starter-eventhubs bis spring-cloud-azure-starter-integration-eventhubs
Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-integration-eventhubs ab Version 2 von azure-spring-cloud-starter-eventhubs unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
SDK-Konfigurationsänderungen
Wichtig
Konfigurationspräfix wurde von spring.cloud.azure.eventhub
zu spring.cloud.azure.eventhubs.
Änderungen an den untergeordneten Einträgen für dieses Präfix finden Sie in den folgenden Tabellen:
In der folgenden Tabelle sind Eigenschaftenzuordnungen von azure-spring-cloud-starter-eventhubs
zu spring-cloud-azure-starter-integration-eventhubs
:
Legacyeigenschaften | Moderne Eigenschaften |
---|---|
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 |
Ändern Sie z. B. von:
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}
in:
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-Änderungen
- Die Änderungen an den Listeneranmerkungen finden Sie im Migrationsleitfaden der Migrationsleitfaden der <<Migrations-azure-spring-cloud-messaging, azure-spring-cloud-messaging-Bibliothek>> .
- Drop
EventHubOperation
mit der abonnierenden Funktion, die in die KlasseEventHubsMessageListenerContainer
verschoben wurde, und die sendende Funktion in .EventHubsTemplate
EventHubsInboundChannelAdapter
Benennen SieEventHubInboundChannelAdapter
sie so um, dass sie mit dem Dienst von Azure Event Hubs konsistent bleiben.- Ändern Sie den Konstruktor von
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)
zuEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
undEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
. - Ändern Sie
CheckpointConfig
die Instanziierungsformatvorlage in den einfachen Konstruktor anstelle des Buildstils. - Drop-API
EventHubOperation#setCheckpointConfig
. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer die MethodeEventHubsContainerProperties#setCheckpointConfig
aufrufen. - Drop-API
EventHubOperation#setBatchConsumerConfig
. Um die batchaufwendige Konfiguration für den Eingehenden Kanaladapter festzulegen, können Benutzer die beiden MethodenEventHubsContainerProperties#getBatch#setMaxSize
aufrufen undEventHubsContainerProperties#getBatch#setMaxWaitTime
in der Zwischenzeit. - Ändern Sie für den Modus "Batchverwendung" die nachrichtenkopfzeilennamen, die aus batchierten Nachrichten konvertiert wurden.
- Ändern des Nachrichtenkopfs von
azure_eventhub_enqueued_time
zuazure_eventhubs_batch_converted_enqueued_time
. - Ändern des Nachrichtenkopfs von
azure_eventhub_offset
zuazure_eventhubs_batch_converted_offset
. - Ändern des Nachrichtenkopfs von
azure_eventhub_sequence_number
zuazure_eventhubs_batch_converted_sequence_number
. - Ändern des Nachrichtenkopfs von
azure_partition_key
zuazure_batch_converted_partition_key
.
- Ändern des Nachrichtenkopfs von
- Ignorieren Sie beim Veröffentlichen von Nachrichten in Event Hubs alle Nachrichtenkopfzeilen, die aus batchierten Nachrichten konvertiert wurden. Kopfzeilen umfassen:
- 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
- Der
BATCH
Prüfpunktmodus funktioniert jetzt nur im Batch-Nutzungsmodus, der durch ÜbergebenListenerMode.BATCH
an den EventHubsInboundChannelAdapter-Konstruktor aktiviert werden kann.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-starter-eventhubs
:spring-cloud-azure-starter-integration-eventhubs
Legacyklasse | Moderne Klasse |
---|---|
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 |
Beispielcodeausschnitt
EventHubsInboundChannelAdapter
Beispielcode:Legacycode:
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; } }
Moderner Code:
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
Beispielcode:Legacycode:
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; } }
Moderner Code:
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; } }
Von azure-spring-integration-eventhubs bis spring-integration-azure-eventhubs
Dieser Leitfaden soll die Migration zu spring-integration-azure-eventhubs ab Version 2 von azure-spring-integration-eventhubs unterstützen.
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
API-Änderungen
- Drop
EventHubOperation
mit der abonnierenden Funktion, die in die KlasseEventHubsMessageListenerContainer
verschoben wurde, und die sendende Funktion in .EventHubsTemplate
EventHubsInboundChannelAdapter
Benennen SieEventHubInboundChannelAdapter
sie so um, dass sie mit dem Dienst von Azure Event Hubs konsistent bleiben.- Ändern Sie den Konstruktor von
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)
zuEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
undEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
. - Ändern Sie
CheckpointConfig
die Instanziierungsformatvorlage in den einfachen Konstruktor anstelle des Buildstils. - Drop-API
EventHubOperation#setCheckpointConfig
. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer die MethodeEventHubsContainerProperties#setCheckpointConfig
aufrufen. - Drop-API
EventHubOperation#setBatchConsumerConfig
. Um die batchaufwendige Konfiguration für den Eingehenden Kanaladapter festzulegen, können Benutzer die beiden MethodenEventHubsContainerProperties#getBatch#setMaxSize
aufrufen undEventHubsContainerProperties#getBatch#setMaxWaitTime
in der Zwischenzeit. - Ändern Sie für den Modus "Batchverwendung" die nachrichtenkopfzeilennamen, die aus batchierten Nachrichten konvertiert wurden.
- Ändern des Nachrichtenkopfs von
azure_eventhub_enqueued_time
zuazure_eventhubs_batch_converted_enqueued_time
. - Ändern des Nachrichtenkopfs von
azure_eventhub_offset
zuazure_eventhubs_batch_converted_offset
. - Ändern des Nachrichtenkopfs von
azure_eventhub_sequence_number
zuazure_eventhubs_batch_converted_sequence_number
. - Ändern des Nachrichtenkopfs von
azure_partition_key
zuazure_batch_converted_partition_key
.
- Ändern des Nachrichtenkopfs von
- Ignorieren Sie beim Veröffentlichen von Nachrichten in Event Hubs alle Nachrichtenkopfzeilen, die aus batchierten Nachrichten konvertiert wurden. Kopfzeilen umfassen:
- 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
- Der
BATCH
Prüfpunktmodus funktioniert jetzt nur im Batch-Nutzungsmodus, der durch ÜbergebenListenerMode.BATCH
an den EventHubsInboundChannelAdapter-Konstruktor aktiviert werden kann.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-integration-eventhubs
:spring-integration-azure-eventhubs
Legacyklasse | Moderne Klasse |
---|---|
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 |
Von azure-spring-cloud-starter-servicebus bis spring-cloud-azure-starter-integration-servicebus
Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-integration-servicebus ab Version 2 von azure-spring-cloud-starter-servicebus unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
SDK-Konfigurationsänderungen
Für alle konfigurationsoptionen, die in spring-cloud-azure-starter-integration-servicebus
, das Präfix re Standard s as spring.cloud.azure.servicebus
.
In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-cloud-starter-servicebus
zu spring-cloud-azure-starter-integration-servicebus
:
Legacyeigenschaften | Moderne Eigenschaften |
---|---|
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 or spring.cloud.azure.servicebus.retry.fixed.max-retries, should be configured depending on spring.cloud.azure.servicebus.retry.mode=fixed or exponential |
spring.cloud.azure.servicebus.retry-options.delay | spring.cloud.azure.servicebus.retry.exponential.base-delay oder spring.cloud.azure.servicebus.retry.fixed.delay, sollte je nach spring.cloud.azure.servicebus.retry.mode=fixed oder exponential konfiguriert werden. |
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-Änderungen
- Ablegen
ServiceBusQueueOperation
undServiceBusTopicOperation
mit der abonnierenden Funktion in die KlasseServiceBusMessageListenerContainer
und die sendende Funktion verschoben inServiceBusTemplate
. - Legen
ServiceBusQueueInboundChannelAdapter
Sie die Funktionalität ab, undServiceBusTopicInboundChannelAdapter
verschieben Sie die Funktionalität, um eine ServiceBus-Warteschlangen-/Themenentität auf ServiceBusInboundChannelAdapter zu überwachen. - Ändern Sie den Konstruktor von
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
zuServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
undServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Ändern Sie den Konstruktor von
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
zuServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
undServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Drop-APIs
ServiceBusQueueOperation#setCheckpointConfig
undServiceBusTopicOperation#setCheckpointConfig
. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer stattdessen die MethodeServiceBusContainerProperties#setAutoComplete
aufrufen. Um den AutoVervollständigen-Modus zu deaktivieren, entsprichtMANUAL
dem Prüfpunktmodus, und um ihn zu aktivieren, wird derRECORD
Modus ausgelöst. - Drop-APIs
ServiceBusQueueOperatio#setClientConfig
undServiceBusTopicOperation#setClientConfig
. Um den zugrunde liegenden,ServiceBusProcessorClient
vom eingehenden Kanaladapter verwendeten Zusatz zu konfigurieren, können Benutzer stattdessen verwendenServiceBusContainerProperties
. - Legen Sie
CompletableFuture
stattdessen Support inServiceBusTemplate
undDefaultMessageHandler
, SupportReactor
ab. - Fügen Sie eine neue API hinzu
ServiceBusTemplate#setDefaultEntityType
, um den Entitätstyp anzugeben, der erforderlich ist, wenn keine BohnenPropertiesSupplier<String, ProducerProperties>
für dieProducerProperties#entityType
. - Kopfzeile
AzureHeaders.RAW_ID
der Drop-Nachricht . Verwenden Sie stattdessenServiceBusMessageHeaders.MESSAGE_ID
.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-starter-servicebus
:spring-cloud-azure-starter-integration-servicebus
Legacyklasse | Moderne Klasse |
---|---|
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 |
Beispielcodeausschnitt
ServiceBusInboundChannelAdapter
Beispielcode:Legacycode der Verwendung
ServiceBusQueueInboundChannelAdapter
oderServiceBusTopicInboundChannelAdapter
: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; } }
Moderner Code:
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
Beispielcode:Legacycode mit Warteschlange als Beispiel:
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; } }
Moderner Code:
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; } }
Vom azure-spring-integration-servicebus zum spring-integration-azure-servicebus
Dieser Leitfaden soll die Migration zu spring-integration-azure-servicebus ab Version 2 des Azure-spring-integration-servicebus unterstützen.
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
API-Änderungen
- Ablegen
ServiceBusQueueOperation
undServiceBusTopicOperation
mit der abonnierenden Funktion in die KlasseServiceBusMessageListenerContainer
und die sendende Funktion verschoben inServiceBusTemplate
. - Legen
ServiceBusQueueInboundChannelAdapter
Sie die Funktionalität ab, undServiceBusTopicInboundChannelAdapter
verschieben Sie die Funktionalität, um eine ServiceBus-Warteschlangen-/Themenentität auf ServiceBusInboundChannelAdapter zu überwachen. - Ändern Sie den Konstruktor von
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
zuServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
undServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Ändern Sie den Konstruktor von
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
zuServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
undServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Drop-APIs
ServiceBusQueueOperation#setCheckpointConfig
undServiceBusTopicOperation#setCheckpointConfig
. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer stattdessen die MethodeServiceBusContainerProperties#setAutoComplete
aufrufen. Um den AutoVervollständigen-Modus zu deaktivieren, entsprichtMANUAL
dem Prüfpunktmodus, und um ihn zu aktivieren, wird derRECORD
Modus ausgelöst. - Drop-APIs
ServiceBusQueueOperation#setClientConfig
undServiceBusTopicOperation#setClientConfig
. Um den zugrunde liegenden,ServiceBusProcessorClient
vom eingehenden Kanaladapter verwendeten Zusatz zu konfigurieren, können Benutzer stattdessen verwendenServiceBusContainerProperties
. - Legen Sie
CompletableFuture
stattdessen Support inServiceBusTemplate
undDefaultMessageHandler
, SupportReactor
ab. - Fügen Sie eine neue API hinzu
ServiceBusTemplate#setDefaultEntityType
, um den Entitätstyp anzugeben, der erforderlich ist, wenn keine BohnenPropertiesSupplier<String, ProducerProperties>
für dieProducerProperties#entityType
. - Kopfzeile
AzureHeaders.RAW_ID
der Drop-Nachricht . Verwenden Sie stattdessenServiceBusMessageHeaders.MESSAGE_ID
.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-integration-servicebus
:spring-integration-azure-servicebus
Legacyklasse | Moderne Klasse |
---|---|
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 |
Von azure-spring-cloud-starter-storage-queue bis spring-cloud-azure-starter-integration-storage-queue
Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-integration-storage-queue ab Version 2 von azure-spring-cloud-starter-storage-queue unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
SDK-Konfigurationsänderungen
Alle Konfigurationseigenschaftennamen haben das Präfix von spring.cloud.azure.storage
zu " geändert spring.cloud.azure.storage.queue
.
In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-cloud-starter-storage-queue
zu spring-cloud-azure-starter-integration-storage-queue
:
Legacyeigenschaften | Moderne Eigenschaften |
---|---|
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-Änderungen
- Legen Sie
StorageQueueOperation
stattdessen ab, und geben Sie es anStorageQueueTemplate
. - Drop
checkpoint-mode
configuration inStorageQueueTemplate
, only support theMANUAL
mode.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-starter-storage-queue
zu spring-cloud-azure-starter-integration-storage-queue
.
Legacyklasse | Moderne Klasse |
---|---|
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 |
Von azure-spring-integration-storage-queue bis spring-integration-azure-storage-queue
Dieser Leitfaden soll die Migration zur Spring-integration-azure-storage-queue ab Version 2 der Azure-spring-integration-storage-queue unterstützen.
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
API-Änderungen
- Legen Sie
StorageQueueOperation
stattdessen ab, und geben Sie es anStorageQueueTemplate
. - Drop
checkpoint-mode
configuration inStorageQueueTemplate
, only support theMANUAL
mode.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-integration-storage-queue
zu spring-integration-azure-storage-queue
.
Legacyklasse | Moderne Klasse |
---|---|
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 |
Von azure-spring-cloud-stream-binder-eventhubs bis spring-cloud-azure-stream-binder-eventhubs
Dieser Leitfaden soll die Migration zu spring-cloud-azure-stream-binder-eventhubs ab Version 2 von azure-spring-cloud-stream-binder-eventhubs unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
SDK-Konfigurationsänderungen
Wichtig
Konfigurationspräfix wurde von spring.cloud.azure.eventhub
zu spring.cloud.azure.eventhubs.
Wichtig
Der Ordnertyp wird von: eventhub
in eventhubs
.
Änderungen an den untergeordneten Einträgen für das folgende Präfix finden Sie in der folgenden Tabelle.
In der folgenden Tabelle sind Eigenschaftenzuordnungen von azure-spring-cloud-stream-binder-eventhubs
zu spring-cloud-azure-stream-binder-eventhubs
:
Legacyeigenschaften | Moderne Eigenschaften |
---|---|
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 |
Hinweis
Der Werttyp der start-position
Konfiguration wird auch von einer Enumeration von com.azure.spring.integration.core.api.StartPosition
zu einer map
der StartPositionProperties
für jede Partition geändert. Daher ist der Schlüssel die Partitions-ID, und der Wert enthält com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties
Eigenschaften von Offset, Sequenznummer, enqueuierte Datumszeit und ob einschließlich.
Beispiele für die Konfigurationsmigration
Um die Verbindungszeichenfolge für die Authentifizierung zu verwenden und die oben genannten Erwähnung Eigenschaften zu migrieren, werden Konfigurationsänderungen wie folgt aufgeführt:
Legacykonfiguration:
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
Moderne Konfiguration:
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
Wenn Sie Sicherheitsprinzipale anstelle von Verbindungszeichenfolge s verwenden, stellt die Anwendung in Versionen vor 4.0 zunächst eine Verbindung mit Azure Resource Manager (ARM) mit dem bereitgestellten Sicherheitsprinzipal her und ruft dann die Verbindungszeichenfolge des angegebenen Namespaces mit ARM ab. Am Ende verwendet die Anwendung die abgerufene Verbindungszeichenfolge, um eine Verbindung mit Azure Event Hubs herzustellen. Auf diese Weise sollte der bereitgestellte Sicherheitsprinzipal mit der Rolle "Mitwirkender " erteilt werden, um den zugeordneten Azure Event Hubs-Namespace abzurufen.
Für Azure Spring Apps 4.0 bieten wir zwei Möglichkeiten, Sicherheitsprinzipale für die Authentifizierung zu nutzen. Eine verwendet weiterhin die Prinzipale, um eine Verbindung mit ARM herzustellen und die Verbindungszeichenfolge abzurufen, in denen die Contributor
Rolle für die Prinzipale erforderlich ist. Die andere nutzt Sicherheitsprinzipale, um sich bei Microsoft Entra-ID zu authentifizieren und dann eine direkte Verbindung mit Azure Event Hubs herzustellen. In diesem Fall ist die Contributor
Rolle nicht mehr erforderlich, während andere Data
verwandte Rollen für Messagingvorgänge erforderlich sind. Um sicherzustellen, dass dem Sicherheitsprinzipal die ausreichende Berechtigung für den Zugriff auf die Azure-Ressource gewährt wurde, lesen Sie "Autorisieren des Zugriffs mit Microsoft Entra ID".
Für die Authentifizierung basierend auf ARM wird der Dienstprinzipal wie folgt aufgeführt, bei der die zugewiesene Rolle nicht geändert werden sollte:
Legacykonfiguration:
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}
Hinweis
Die zulässigen tenant-id
Werte sind: common
, , organizations
, consumers
, oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt "Verwendet" des falschen Endpunkts (persönliche und Organisationskonten) des Fehlers AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandanten vorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.
Moderne Konfiguration, Eigenschaften für Azure-Abonnement-ID und Ressourcengruppe sind erforderlich:
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}
Hinweis
Die zulässigen tenant-id
Werte sind: common
, , organizations
, consumers
, oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt "Verwendet" des falschen Endpunkts (persönliche und Organisationskonten) des Fehlers AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandanten vorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.
Sie können auch zur Authentifizierung und Autorisierung mit microsoft Entra ID direkt migrieren, ohne einen Umweg zu ARM zu machen. Stellen Sie sicher, dass Sie dem Sicherheitsprinzipal erforderliche Data
Rollen für Messagingvorgänge gewähren. Die Konfigurationsbeispiele des Dienstprinzipals und der verwalteten Identität sind wie folgt aufgeführt:
Mit einem Dienstprinzipal
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> eventhubs: namespace: ${EVENTHUB_NAMESPACE}
Hinweis
Die zulässigen tenant-id
Werte sind: common
, , organizations
, consumers
, oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt "Verwendet" des falschen Endpunkts (persönliche und Organisationskonten) des Fehlers AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandanten vorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.
Mit einer verwalteten Identität
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-Änderungen
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-stream-binder-eventhubs
zu spring-cloud-azure-stream-binder-eventhubs
.
Legacyklasse | Moderne Klasse |
---|---|
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 |
Von azure-spring-cloud-stream-binder-servicebus-* bis spring-cloud-azure-stream-binder-servicebus
Dieser Leitfaden soll die Migration zu spring-cloud-azure-stream-binder-servicebus ab Version 2 von azure-spring-cloud-stream-binder-servicebus-queue oder azure-spring-cloud-stream-binder-servicebus-topic unterstützen.
Verwenden Sie für allgemeine Informationen die folgenden Links:
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten "Einführung " und "Migrationsvorteile" .
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt "Namensänderungen ".
- Informationen zur Verwendung einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt "BOM ".
- Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt "Authentifizierungsänderungen ".
- Informationen zum Nutzen
spring-boot-properties-migrator
während der Migration finden Sie im Abschnitt "Konfigurieren der einzelnen SDK" . - Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt "Globale Konfigurationen" .
SDK-Konfigurationsänderungen
Wichtig
Legacy-Ordnerbibliotheken sind azure-spring-cloud-stream-binder-servicebus-queue
und azure-spring-cloud-stream-binder-servicebus-topic
, und jetzt werden sie zu einem spring-cloud-azure-stream-binder-servicebus
zusammengeführt .
Wichtig
Der Bindemitteltyp wird aus servicebus-queue
und servicebus-topic
als servicebus
.
In der folgenden Tabelle sind die neuen Konfigurationseigenschaften aufgeführt:spring-cloud-azure-stream-binder-servicebus
Moderne Eigenschaften | Beschreibung |
---|---|
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type | Wenn Sie die Sendenfunktion verwenden, müssen Sie den Entitätstyp festlegen, den Sie auf Thema oder Warteschlange festlegen können. |
In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-cloud-stream-binder-servicebus-*
zu spring-cloud-azure-stream-binder-servicebus
:
Legacyeigenschaften | Moderne Eigenschaften |
---|---|
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 or spring.cloud.azure.servicebus.retry.fixed.max-retries, should be configured depending on spring.cloud.azure.servicebus.retry.mode=fixed or exponential |
spring.cloud.azure.servicebus.retry-options.delay | spring.cloud.azure.servicebus.retry.exponential.base-delay oder spring.cloud.azure.servicebus.retry.fixed.delay, sollte je nach spring.cloud.azure.servicebus.retry.mode=fixed oder exponential konfiguriert werden. |
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.Parallelität | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.Prüfpunktmodus | spring.cloud.stream.servicebus.bindings.binding-name.consumer.AutoVervollständigen |
spring.cloud.stream.servicebus.topic.bindings.* | spring.cloud.stream.servicebus.bindings.* |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.Parallelität | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.Prüfpunktmodus | spring.cloud.stream.servicebus.bindings.binding-name.consumer.AutoVervollständigen |
Hinweis
Die Parallelitätseigenschaft wird durch die maxConcurrentSessions ersetzt, wenn "sessionsEnabled" ist true
und "maxConcurrentCalls", wenn "sessionsEnabled" ist false
.
Hinweis
Das Aktivieren von "AutoVervollständigen" entspricht dem RECORD
Prüfpunktmodus und gegenüber dem MANUAL
Modus.
Beispiele für die Konfigurationsmigration
Legacykonfiguration mit Warteschlange als Beispiel:
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
Moderne Konfiguration:
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
Wenn Sie Sicherheitsprinzipale anstelle von Verbindungszeichenfolge s verwenden, stellt die Anwendung in Versionen vor 4.0 zunächst eine Verbindung mit Azure Resource Manager (ARM) mit dem bereitgestellten Sicherheitsprinzipal her und ruft dann die Verbindungszeichenfolge des angegebenen Namespaces mit ARM ab. Am Ende verwendet die Anwendung die abgerufene Verbindungszeichenfolge, um eine Verbindung mit Azure Service Bus herzustellen. Auf diese Weise sollte der bereitgestellte Sicherheitsprinzipal mit der Rolle "Mitwirkender " erteilt werden, um den zugeordneten Azure Service Bus-Namespace abzurufen.
Für Azure Spring Apps 4.0 bieten wir zwei Möglichkeiten, Sicherheitsprinzipale für die Authentifizierung zu nutzen. Eine verwendet weiterhin die Prinzipale, um eine Verbindung mit ARM herzustellen und die Verbindungszeichenfolge abzurufen, in denen die Contributor
Rolle für die Prinzipale erforderlich ist. Die andere nutzt Sicherheitsprinzipale, um sich bei Microsoft Entra-ID zu authentifizieren und dann eine direkte Verbindung mit dem Azure Service Bus herzustellen. In diesem Fall ist die Contributor
Rolle nicht mehr erforderlich, während andere Data
verwandte Rollen für Messagingvorgänge erforderlich sind. Um sicherzustellen, dass dem Sicherheitsprinzipal die ausreichende Berechtigung für den Zugriff auf die Azure-Ressource gewährt wurde, lesen Sie "Autorisieren des Zugriffs mit Microsoft Entra ID".
Für die Authentifizierung basierend auf ARM wird der Dienstprinzipal wie folgt aufgeführt, bei der die zugewiesene Rolle nicht geändert werden sollte:
Legacykonfiguration:
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}
Hinweis
Die zulässigen tenant-id
Werte sind: common
, , organizations
, consumers
, oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt "Verwendet" des falschen Endpunkts (persönliche und Organisationskonten) des Fehlers AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandanten vorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.
Moderne Konfiguration, Eigenschaften für Azure-Abonnement-ID und Ressourcengruppe sind erforderlich:
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}
Hinweis
Die zulässigen tenant-id
Werte sind: common
, , organizations
, consumers
, oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt "Verwendet" des falschen Endpunkts (persönliche und Organisationskonten) des Fehlers AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandanten vorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.
Sie können auch zur Authentifizierung und Autorisierung mit microsoft Entra ID direkt migrieren, ohne einen Umweg zu ARM zu machen. Stellen Sie sicher, dass Sie dem Sicherheitsprinzipal erforderliche Data
Rollen für Messagingvorgänge gewähren. Die Konfigurationsbeispiele des Dienstprinzipals und der verwalteten Identität sind wie folgt aufgeführt:
Mit einem Dienstprinzipal
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> servicebus: namespace: ${SERVICEBUS_NAMESPACE}
Hinweis
Die zulässigen tenant-id
Werte sind: common
, , organizations
, consumers
, oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt "Verwendet" des falschen Endpunkts (persönliche und Organisationskonten) des Fehlers AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandanten vorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.
Mit einer verwalteten Identität
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-Änderungen
- Kopfzeile
AzureHeaders.RAW_ID
der Drop-Nachricht . Verwenden Sie stattdessenServiceBusMessageHeaders.MESSAGE_ID
.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-stream-binder-eventhubs
zu spring-cloud-azure-stream-binder-eventhubs
.
Legacyklasse | Moderne Klasse |
---|---|
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
Die com.azure.spring:azure-spring-cloud-messaging
Bibliothek ist für 4.0 nicht bereit. Die Funktion von Listeneranmerkungen wird neu gestaltet, sodass die @AzureMessageListener
Anmerkungen @AzureMessageListeners
und @EnableAzureMessaging
Anmerkungen derzeit nicht unterstützt werden.