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.
Einleitung
Wir rufen Bibliotheken auf, deren Gruppen-ID und Artefakt-ID dem Muster com.azure.spring:spring-cloud-azure-*
der modernen-Bibliotheken entsprechen, und bibliotheken mit Mustern com.azure.spring:azure-spring-boot-*
, com.azure.spring:azure-spring-cloud-*
oder com.azure.spring:azure-spring-integration-*
den älteren-Bibliotheken.
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-*
, com.azure.spring:azure-spring-cloud-*
oder com.azure.spring:azure-spring-integration-*
Paket wird angenommen.
Wenn Sie mit den Spring Cloud Azure 4.0-Bibliotheken noch nicht fertig sind, lesen Sie den Spring Cloud Azure-Entwicklerleitfaden.
Migrationsvorteile
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
- API-Unterbrechungsänderungen
- Bibliotheksänderungen
Namensänderungen
Es gab nie einen konsistenten oder offiziellen Namen, um alle Spring Cloud Azure-Bibliotheken aufzurufen. Einige von ihnen wurden Azure Spring Boot
und einige von ihnen Spring on Azure
genannt. Seit 4.0 haben wir begonnen, den Projektnamen Spring Cloud Azure
zu verwenden, um alle Azure Spring-Bibliotheken darzustellen.
STÜCKLISTE
Wir haben schon zwei BOMs für unsere Bibliotheken, die azure-spring-boot-bom
und azure-spring-cloud-dependencies
ausgeliefert, aber wir haben diese beiden BOMs seit 4.0, dem spring-cloud-azure-dependencies
, zu einem BOM kombiniert. Fügen Sie einen Eintrag im Abschnitt dependencyManagement
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>5.20.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Anmerkung
Wenn Sie Spring Boot 2.x verwenden, müssen Sie unbedingt die spring-cloud-azure-dependencies
Version auf 4.19.0
festlegen.
Weitere Informationen zu der version, die für diese BOM verwendet wird, finden Sie unter Welche Version von Spring Cloud Azure sollte ichverwenden.
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 spring-cloud-azure-starter-[service]
, spring-integration-azure-[service]
oder spring-cloud-azure-stream-binder-[service]
sein. 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 Artefakt wurde umbenannt, um data hinzuzufügen, was die Verwendung von 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 mit der neuen spring-cloud-azure-autoconfigure und spring-cloud-azure-resourcemanager Artefakten zusammengeführt. |
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 Nutzung finden Sie unter Spring Cloud Azure Redis-Unterstützung. |
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 Nutzung finden Sie unter Spring Cloud Azure Kafka-Unterstützung. |
azure-spring-cloud-starter-eventhubs | spring-cloud-azure-starter-integration-eventhubs | Das Artefakt wurde umbenannt, um integration hinzuzufügen, was die Verwendung der Federintegration mit Event Hubs angibt. |
azure-spring-cloud-starter-servicebus | spring-cloud-azure-starter-integration-servicebus | Das Artefakt wurde umbenannt, um integration hinzuzufügen, was die Verwendung der Federintegration mit Service Bus angibt. |
Azure-spring-cloud-starter-storage-queue | spring-cloud-azure-starter-integration-storage-queue | Das Artefakt wurde umbenannt, um integration hinzuzufügen, was die Verwendung der 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 mit einem neuen Design umgestaltet, hauptsächlich spring-cloud-azure-stream-binder-eventhubs und spring-cloud-azure-stream-binder-eventhubs-core . |
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 mit dem spring-cloud-azure-stream-binder-servicebus Artefakt zusammengeführt. |
Azure-spring-cloud-stream-binder-servicebus-topic | spring-cloud-azure-stream-binder-servicebus | Dieses Artefakt wurde mit allen Funktionen mit dem spring-cloud-azure-stream-binder-servicebus Artefakt zusammengeführt. |
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 des 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.
Anmerkung
Wenn Sie den Sicherheitsprinzipalen Rollen für die Interaktion mit Azure-Messagingdiensten zuweisen, sind die Data
zugehörigen Rollen erforderlich, um Messagingvorgänge durchzuführen. Für Azure Spring Apps Stream Event Hubs /Service Bus Binder-Bibliotheken ist Contributor
Rolle erforderlich, wenn die Funktion der automatischen Erstellung von Ressourcen erforderlich ist. Weitere Informationen finden Sie unter integrierten Azure-Rollen.
Eine verkettete Anmeldeinformation, die 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 Abschnitt Azure Identity-Clientbibliothek für Java-.
Konfigurationseigenschaften
Eigenschaftenmigration
Wir haben eine additional-spring-configuration-metadata.json Datei erstellt, um die Eigenschaftenmigration 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.
Anmerkung
Wir haben viele Konfigurationseigenschaften in dieser Änderung geändert. Die Verwendung der spring-boot-properties-migrator
trägt dazu bei, die Migration zu glätten.
Globale Konfigurationen
Mit dem modernen spring-cloud-azure-starter
können Sie Eigenschaften definieren, die für alle Azure-SDKs im Namespace spring.cloud.azure
gelten. Dieses Feature wurde im Legacy-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 zu spring-cloud-azure-starter-keyvault-secrets
- Von azure-spring-boot-starter-servicebus-jms zu 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 zu 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 zu spring-cloud-azure-stream-binder-eventhubs
- Von azure-spring-cloud-stream-binder-servicebus-* bis spring-cloud-azure-stream-binder-servicebus
API-Unterbrechungsänderungen
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 zu 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
- von azure-spring-integration-servicebus bis 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 zu 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
Dieses Handbuch 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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen 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-directoryunterstü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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen 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 wichtigsten Punkte, auf die Sie achten müssen:
- Das Präfix aller Konfigurationseigenschaftennamen wurde von
azure.activedirectory
inspring.cloud.azure.active-directory
geändert. - Neue Eigenschaft
spring.cloud.azure.active-directory.enabled
wird hinzugefügt, um microsoft Entra verwandte 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
inDuration
geändert: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
Anmerkung
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
zu 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
Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-active-directory-b2c ab Version 3 von azure-spring-boot-starter-active-directory-b2cunterstü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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen 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 wichtigsten Punkte, auf die Sie achten müssen:
- Alle Konfigurationseigenschaftennamen haben das Präfix von
azure.activedirectory.b2c
inspring.cloud.azure.active-directory.b2c
geändert. - 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".
Die folgende Tabelle zeigt 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
inDuration
geändert:- jwt-connect-timeout
- jwt-read-timeout
API-Änderungen
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-active-directory-b2c
zu 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-cosmosunterstü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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen Konfigurationen.
SDK-Konfigurationsänderungen
Alle Konfigurationseigenschaftennamen haben das Präfix von azure.cosmos
in spring.cloud.azure.cosmos
geändert.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-cosmos
zu 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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen Konfigurationen.
SDK-Konfigurationsänderungen
Dieser Abschnitt enthält die Änderungen zu den hinzugefügten, entfernten und geänderten Eigenschaften.
Die folgende Tabelle zeigt 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].case-sensitive |
azure.keyvault.certificate-password | spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-password |
azure.keyvault.certificate-path | spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-path |
azure.keyvault.client-id | spring.cloud.azure.keyvault.secret.property-source[n].credential.client-id |
azure.keyvault.client-key | spring.cloud.azure.keyvault.secret.property-source[n].credential.client-secret |
azure.keyvault.enabled | spring.cloud.azure.keyvault.secret.property-source-enabled und spring.cloud.azure.keyvault.secret.property-source-enabled |
azure.keyvault.order | Wird 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
inspring.cloud.azure.keyvault.secret
geändert. -
spring.cloud.azure.keyvault.secret.enabled
wird verwendet, um alle Key Vault Secret-Features zu aktivieren, einschließlich der Konfiguration der Bohnen des geheimen Schlüsseltresorschlüssels (z. B.SecretClient
undSecretAsyncClient
) und das Hinzufügen vonKeyVaultPropertySource
inConfigurableEnvironment
. -
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. B.
client
,proxy
,retry
,credential
,profile
) und Key Vault-Eigenschaften (z. B.endpoint
,service-version
). Wennspring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME
nicht konfiguriert ist, werdenspring.cloud.azure.keyvault.secret.PROPERTY_NAME
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-jmsunterstü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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen Konfigurationen.
SDK-Konfigurationsänderungen
Konfigurationstyp für spring.jms.servicebus.idle-timeout
von long
(Millisekunden) in Duration
Muster zur Lesbarkeit geändert.
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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen Konfigurationen.
SDK-Konfigurationsänderungen
Alle Konfigurationseigenschaftennamen haben das Präfix von azure.storage
in spring.cloud.azure.storage.blob
geändert.
Die folgende Tabelle zeigt 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.storageBLOB-Endpunkt | spring.cloud.azure.storage.blob.endpoint |
API-Änderungen
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-storage
zu 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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen Konfigurationen.
SDK-Konfigurationsänderungen
Alle Konfigurationseigenschaftennamen haben das Präfix von azure.storage
in spring.cloud.azure.storage.fileshare
geändert.
Die folgende Tabelle zeigt 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
zu 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
Dieses Handbuch soll die Migration zu spring-cloud-azure-starter-integration-eventhubs ab Version 2 von azure-spring-cloud-starter-eventhubsunterstü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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen Konfigurationen.
SDK-Konfigurationsänderungen
Wichtig
Das Konfigurationspräfix wurde von spring.cloud.azure.eventhub
in spring.cloud.azure.eventhubs.
geändert.
Änderungen an den untergeordneten Einträgen für dieses Präfix finden Sie in den folgenden Tabellen:
Die folgende Tabelle zeigt 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}
An:
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 <<Migrations-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> Bibliothek.
- Legen Sie
EventHubOperation
ab, wobei die abonnierende Funktion in die KlasseEventHubsMessageListenerContainer
verschoben wurde und die sendende Funktion inEventHubsTemplate
verschoben wurde. - Benennen Sie
EventHubInboundChannelAdapter
inEventHubsInboundChannelAdapter
um mit dem Dienst von Azure Event Hubs konsistent zu bleiben. - Ändern Sie den Konstruktor von
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)
inEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
undEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
. - Ändern Sie
CheckpointConfig
Instanziierungsstil 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
undEventHubsContainerProperties#getBatch#setMaxWaitTime
aufrufen. - Ändern Sie für den Modus "Batchverwendung" die nachrichtenkopfzeilennamen, die aus batchierten Nachrichten konvertiert wurden.
- Ändern Sie den Nachrichtenkopf von
azure_eventhub_enqueued_time
inazure_eventhubs_batch_converted_enqueued_time
. - Ändern Sie den Nachrichtenkopf von
azure_eventhub_offset
inazure_eventhubs_batch_converted_offset
. - Ändern Sie den Nachrichtenkopf von
azure_eventhub_sequence_number
inazure_eventhubs_batch_converted_sequence_number
. - Ändern Sie den Nachrichtenkopf von
azure_partition_key
inazure_batch_converted_partition_key
.
- Ändern Sie den Nachrichtenkopf 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 aktiviert werden kann, indemListenerMode.BATCH
an den EventHubsInboundChannelAdapter-Konstruktor übergeben wird.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-starter-eventhubs
zu 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-eventhubsunterstützen.
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
API-Änderungen
- Legen Sie
EventHubOperation
ab, wobei die abonnierende Funktion in die KlasseEventHubsMessageListenerContainer
verschoben wurde und die sendende Funktion inEventHubsTemplate
verschoben wurde. - Benennen Sie
EventHubInboundChannelAdapter
inEventHubsInboundChannelAdapter
um mit dem Dienst von Azure Event Hubs konsistent zu bleiben. - Ändern Sie den Konstruktor von
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)
inEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
undEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
. - Ändern Sie
CheckpointConfig
Instanziierungsstil 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
undEventHubsContainerProperties#getBatch#setMaxWaitTime
aufrufen. - Ändern Sie für den Modus "Batchverwendung" die nachrichtenkopfzeilennamen, die aus batchierten Nachrichten konvertiert wurden.
- Ändern Sie den Nachrichtenkopf von
azure_eventhub_enqueued_time
inazure_eventhubs_batch_converted_enqueued_time
. - Ändern Sie den Nachrichtenkopf von
azure_eventhub_offset
inazure_eventhubs_batch_converted_offset
. - Ändern Sie den Nachrichtenkopf von
azure_eventhub_sequence_number
inazure_eventhubs_batch_converted_sequence_number
. - Ändern Sie den Nachrichtenkopf von
azure_partition_key
inazure_batch_converted_partition_key
.
- Ändern Sie den Nachrichtenkopf 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 aktiviert werden kann, indemListenerMode.BATCH
an den EventHubsInboundChannelAdapter-Konstruktor übergeben wird.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-integration-eventhubs
zu 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-servicebusunterstü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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen Konfigurationen.
SDK-Konfigurationsänderungen
Für alle konfigurationsoptionen, die in spring-cloud-azure-starter-integration-servicebus
unterstützt werden, bleibt das Präfix als spring.cloud.azure.servicebus
.
Die folgende Tabelle zeigt 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-Wiederholungen | spring.cloud.azure.servicebus.retry.exponential.max-retries oder spring.cloud.azure.servicebus.retry.fixed.max-wiederholungsversuche sollten je nach spring.cloud.azure.servicebus.retry.mode=festen oder exponentiellen konfiguriert werden. |
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=festen oder exponentiellen 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
- Legen Sie
ServiceBusQueueOperation
undServiceBusTopicOperation
ab, wobei die abonnierende Funktion in die KlasseServiceBusMessageListenerContainer
verschoben wurde und die sendende Funktion inServiceBusTemplate
verschoben wurde. - Legen Sie
ServiceBusQueueInboundChannelAdapter
undServiceBusTopicInboundChannelAdapter
ab, und verschieben Sie die Funktionalität, um eine ServiceBus-Warteschlangen-/Themenentität auf ServiceBusInboundChannelAdapter zu hören. - Ändern Sie den Konstruktor von
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
inServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
undServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Ändern Sie den Konstruktor von
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
inServiceBusInboundChannelAdapter(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
Prüfpunktmodus, und um ihn zu aktivieren, wird derRECORD
Modus ausgelöst. - Drop-APIs
ServiceBusQueueOperatio#setClientConfig
undServiceBusTopicOperation#setClientConfig
. Um die zugrunde liegendeServiceBusProcessorClient
zu konfigurieren, die vom Eingehenden Kanaladapter verwendet wird, können Benutzer stattdessenServiceBusContainerProperties
verwenden. - Legen Sie
CompletableFuture
Unterstützung inServiceBusTemplate
undDefaultMessageHandler
ab, unterstützen Sie stattdessenReactor
. - Fügen Sie eine neue API von
ServiceBusTemplate#setDefaultEntityType
hinzu, um den Entitätstyp anzugeben, der erforderlich ist, wenn für dieProducerProperties#entityType
keinePropertiesSupplier<String, ProducerProperties>
bereitgestellt wird. - Drop message header
AzureHeaders.RAW_ID
. Verwenden Sie stattdessenServiceBusMessageHeaders.MESSAGE_ID
.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-starter-servicebus
zu 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 zur Verwendung von
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 Spring-integration-azure-servicebus ab Version 2 von azure-spring-integration-servicebusunterstützen.
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
API-Änderungen
- Legen Sie
ServiceBusQueueOperation
undServiceBusTopicOperation
ab, wobei die abonnierende Funktion in die KlasseServiceBusMessageListenerContainer
verschoben wurde und die sendende Funktion inServiceBusTemplate
verschoben wurde. - Legen Sie
ServiceBusQueueInboundChannelAdapter
undServiceBusTopicInboundChannelAdapter
ab, und verschieben Sie die Funktionalität, um eine ServiceBus-Warteschlangen-/Themenentität auf ServiceBusInboundChannelAdapter zu hören. - Ändern Sie den Konstruktor von
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
inServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
undServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Ändern Sie den Konstruktor von
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
inServiceBusInboundChannelAdapter(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
Prüfpunktmodus, und um ihn zu aktivieren, wird derRECORD
Modus ausgelöst. - Drop-APIs
ServiceBusQueueOperation#setClientConfig
undServiceBusTopicOperation#setClientConfig
. Um die zugrunde liegendeServiceBusProcessorClient
zu konfigurieren, die vom Eingehenden Kanaladapter verwendet wird, können Benutzer stattdessenServiceBusContainerProperties
verwenden. - Legen Sie
CompletableFuture
Unterstützung inServiceBusTemplate
undDefaultMessageHandler
ab, unterstützen Sie stattdessenReactor
. - Fügen Sie eine neue API von
ServiceBusTemplate#setDefaultEntityType
hinzu, um den Entitätstyp anzugeben, der erforderlich ist, wenn für dieProducerProperties#entityType
keinePropertiesSupplier<String, ProducerProperties>
bereitgestellt wird. - Drop message header
AzureHeaders.RAW_ID
. Verwenden Sie stattdessenServiceBusMessageHeaders.MESSAGE_ID
.
Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-integration-servicebus
zu 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 zur spring-cloud-azure-starter-integration-storage-queue ab Version 2 von azure-spring-cloud-starter-storage-queueunterstü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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen Konfigurationen.
SDK-Konfigurationsänderungen
Alle Konfigurationseigenschaftennamen haben das Präfix von spring.cloud.azure.storage
in spring.cloud.azure.storage.queue
geändert.
Die folgende Tabelle zeigt 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.storageACCESS-Schlüssel | 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
ab, und stellen Sie stattdessenStorageQueueTemplate
bereit. - Legen Sie
checkpoint-mode
Konfiguration inStorageQueueTemplate
ab, unterstützen sie nur denMANUAL
Modus.
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 zu Spring-integration-azure-storage-queue- ab Version 2 von azure-spring-integration-storage-queue-unterstützen.
- Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
API-Änderungen
- Legen Sie
StorageQueueOperation
ab, und stellen Sie stattdessenStorageQueueTemplate
bereit. - Legen Sie
checkpoint-mode
Konfiguration inStorageQueueTemplate
ab, unterstützen sie nur denMANUAL
Modus.
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-eventhubsunterstü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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen Konfigurationen.
SDK-Konfigurationsänderungen
Wichtig
Das Konfigurationspräfix wurde von spring.cloud.azure.eventhub
in spring.cloud.azure.eventhubs.
geändert.
Wichtig
Der Ordnertyp wird umbenannt von: eventhub
in eventhubs
.
Änderungen an den untergeordneten Einträgen für das folgende Präfix finden Sie in der folgenden Tabelle.
Die folgende Tabelle zeigt 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 |
Anmerkung
Der Werttyp der start-position
-Konfiguration wird auch von einer Enumeration von com.azure.spring.integration.core.api.StartPosition
in eine map
von StartPositionProperties
für jede Partition geändert. Daher ist der Schlüssel die Partitions-ID, und der Wert ist von com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties
, die Eigenschaften von Offset, Sequenznummer, enqueuierte Datumszeit und ob einschließlich enthält.
Beispiele für die Konfigurationsmigration
Um die Verbindungszeichenfolge für die Authentifizierung zu verwenden und die oben genannten 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 Verbindungszeichenfolgen verwenden, stellt die Anwendung in Versionen vor 4.0 zuerst 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 dem Mitwirkenden Rolle 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 Verbindungszeichenfolgen 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}
Anmerkung
Die für tenant-id
zulässigen Werte sind: common
, organizations
, consumers
oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt
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}
Anmerkung
Die für tenant-id
zulässigen Werte sind: common
, organizations
, consumers
oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt
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 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}
Anmerkung
Die für tenant-id
zulässigen Werte sind: common
, organizations
, consumers
oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt
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
Dieses Handbuch soll die Migration spring-cloud-azure-stream-binder-servicebus ab Version 2 von azure-spring-cloud-stream-binder-servicebus-queue oder azure-spring-cloud-stream-binder-servicebus-topicunterstü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 Abschnitten.
- Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
- Informationen zum Verwenden 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 von
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 globalen 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 in einem spring-cloud-azure-stream-binder-servicebus
zusammengeführt.
Wichtig
Der Bindemitteltyp wird aus servicebus-queue
und servicebus-topic
als servicebus
kombiniert.
In der folgenden Tabelle sind die neuen Konfigurationseigenschaften von spring-cloud-azure-stream-binder-servicebus
aufgeführt:
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. |
Die folgende Tabelle zeigt 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-Wiederholungen | spring.cloud.azure.servicebus.retry.exponential.max-retries oder spring.cloud.azure.servicebus.retry.fixed.max-wiederholungsversuche sollten je nach spring.cloud.azure.servicebus.retry.mode=festen oder exponentiellen konfiguriert werden. |
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=festen oder exponentiellen 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.automatisch abgeschlossene |
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.automatisch abgeschlossene |
Anmerkung
Die Parallelitätseigenschaft wird durch die maxConcurrentSessions ersetzt, wenn sessionsEnabled true
und maxConcurrentCalls, wenn sessionsEnabled false
ist.
Anmerkung
Das Aktivieren der automatischen Fertigstellung entspricht 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 Verbindungszeichenfolgen verwenden, stellt die Anwendung in Versionen vor 4.0 zuerst 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 dem Mitwirkenden Rolle 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 Verbindungszeichenfolgen 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}
Anmerkung
Die für tenant-id
zulässigen Werte sind: common
, organizations
, consumers
oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt
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}
Anmerkung
Die für tenant-id
zulässigen Werte sind: common
, organizations
, consumers
oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt
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 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}
Anmerkung
Die für tenant-id
zulässigen Werte sind: common
, organizations
, consumers
oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt
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
- Drop message header
AzureHeaders.RAW_ID
. 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
, @AzureMessageListeners
und @EnableAzureMessaging
Anmerkungen derzeit nicht unterstützt werden.