Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 Azuregenannt. 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-dependenciesausgeliefert, 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>6.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Anmerkung
Wenn Sie Spring Boot 3.0.x-3.4.x verwenden, stellen Sie sicher, dass Sie die spring-cloud-azure-dependencies Version auf 5.23.0festlegen.
Wenn Sie Spring Boot 2.x verwenden, müssen Sie unbedingt die spring-cloud-azure-dependencies Version auf 4.20.0festlegen.
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-frühling-stiefel-starter | frühling-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 | frühling-cloud-azure-starter-active-directory | Das Artefakt wurde umbenannt. |
| azure-spring-boot-starter-active-directory-b2c | frühling-cloud-azure-starter-active-directory-b2c | Das Artefakt wurde umbenannt. |
| azure-frühling-stiefel-starter-kosmos | frühling-cloud-azure-starter-daten-kosmos | Das Artefakt wurde umbenannt, um datahinzuzufügen, was die Verwendung von Spring Data Azure Cosmos DB angibt. |
| azure-spring-boot-starter-keyvault-zertifikate | nicht zutreffend | Nicht in dieser Version enthalten, wird aber in späterer Version unterstützt. |
| azure-spring-boot-starter-keyvault-geheimnisse | spring-cloud-azure-starter-keyvault-geheimnisse | Das Artefakt wurde umbenannt. |
| azure-spring-boot-starter-servicebus-jms | frühling-cloud-azure-starter-servicebus-jms | Das Artefakt wurde umbenannt. |
| Azure-spring-boot-starter-storage | frühling-cloud-azure-starter-storage-blob frühling-cloud-azure-starter-speicher-dateifreigabe |
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-frühlingsstiefel | 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-autokonfigurieren | 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 | frühling-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 | frühling-cloud-azure-starter-integration-eventhubs | Das Artefakt wurde umbenannt, um integrationhinzuzufügen, was die Verwendung der Federintegration mit Event Hubs angibt. |
| azure-spring-cloud-starter-servicebus | frühling-cloud-azure-starter-integration-servicebus | Das Artefakt wurde umbenannt, um integrationhinzuzufü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 integrationhinzuzufü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 | frühling-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 | frühling-cloud-azure-stream-binder-servicebus-core | Das Artefakt wurde umbenannt. |
| azure-spring-cloud-stream-binder-servicebus-queue | frühling-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 | frühling-cloud-azure-stream-binder-servicebus | Dieses Artefakt wurde mit allen Funktionen mit dem spring-cloud-azure-stream-binder-servicebus Artefakt zusammengeführt. |
| azure-feder-integration-core | frühlingsintegration-azure-core | Das Artefakt wurde umbenannt. |
| azure-spring-integration-eventhubs | spring-integration-azure-eventhubs | Benennen Sie das Artefakt um. |
| azure-spring-integration-servicebus | frühling-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-aktuator-autokonfigurieren | Das neu hinzugefügte Spring Cloud Azure Actuator AutoConfigure-Artefakt, einschließlich der automatischen Konfiguration für Aktoren. |
| nicht zutreffend | spring-cloud-azure-autokonfigurieren | 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 | frühling-cloud-azure-core | Neu hinzugefügtes Spring Cloud Azure Core-Artefakt, einschließlich aller Kernfunktionen. |
| nicht zutreffend | frühling-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 | frühling-cloud-azure-dienst | Neu hinzugefügtes Spring Cloud Azure Service-Artefakt, einschließlich Abstraktionen für Azure-Dienste. |
| nicht zutreffend | frühling-cloud-azure-starter-appkonfiguration | Neu hinzugefügter Start für die Verwendung des Azure App Configuration SDK-Clients. |
| nicht zutreffend | frühling-wolke-azure-starter-kosmos | Neu hinzugefügter Start für die Verwendung des Azure Cosmos DB SDK-Clients. |
| nicht zutreffend | frühling-cloud-azure-starter-eventhubs | Neu hinzugefügter Start für die Verwendung des Azure Event Hubs SDK-Clients. |
| nicht zutreffend | frühling-cloud-azure-starter-servicebus | Neu hinzugefügter Start für die Verwendung des Azure Service Bus SDK-Clients. |
| nicht zutreffend | frühling-cloud-azure-starter-storage-blob | Neu hinzugefügter Start für die Verwendung des Azure Storage Blob SDK-Clients. |
| nicht zutreffend | frühling-cloud-azure-starter-speicher-dateifreigabe | 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 | frühling-cloud-azure-starter-stream-eventhubs | Neu hinzugefügter Start für die Verwendung von Azure Event Hubs Spring Cloud Stream Binder. |
| nicht zutreffend | frühling-cloud-azure-starter-stream-servicebus | Neu hinzugefügter Start für die Verwendung von Azure Service Bus Spring Cloud Stream Binder |
| nicht zutreffend | frühling-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:
- frühling-cloud-azure-starter
- spring-cloud-azure-starter-active-directory-
- frühling-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-migratorzu 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.azuregelten. Dieses Feature wurde im Legacy-azure-spring-boot-starternicht 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-migratorwä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-validierung | 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-migratorwä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-validierung | 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.activedirectoryinspring.cloud.azure.active-directorygeändert. - Neue Eigenschaft
spring.cloud.azure.active-directory.enabledwird 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
longinDurationgeändert:jwt-connect-timeoutjwt-read-timeoutjwk-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-migratorwä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-validierung | 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.b2cinspring.cloud.azure.active-directory.b2cgeändert. - Neue Eigenschaft
spring.cloud.azure.active-directory.b2c.enabledwird 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.genehmigungs-art> | spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME.genehmigungs-art> |
| azure.activedirectory.b2c.authorization-clients.<AZURE_CLIENT_NAME.Geltungsbereiche> | spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME.Geltungsbereiche> |
| 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.benutzername-attributname | 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
longinDurationgeändert:- jwt-connect-timeout
- jwt-lese-zeitüberschreitung
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-migratorwä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.cosmosgeä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-migratorwä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.keyvaultinspring.cloud.azure.keyvault.secretgeändert. -
spring.cloud.azure.keyvault.secret.enabledwird verwendet, um alle Key Vault Secret-Features zu aktivieren, einschließlich der Konfiguration der Bohnen des geheimen Schlüsseltresorschlüssels (z. B.SecretClientundSecretAsyncClient) und das Hinzufügen vonKeyVaultPropertySourceinConfigurableEnvironment. -
spring.cloud.azure.keyvault.secret.property-source-enabledwird verwendet, um alleKeyVaultPropertySourcezu 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_NAMEnicht konfiguriert ist, werdenspring.cloud.azure.keyvault.secret.PROPERTY_NAMEverwendet. -
spring.cloud.azure.keyvault.secret.property-sources[n].resourceist 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-migratorwä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-migratorwä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.blobgeä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-migratorwä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.filesharegeä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-migratorwä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}
Anmerkung
Microsoft empfiehlt die Verwendung des sichersten Authentifizierungsflusses, der verfügbar ist. Der in diesem Verfahren beschriebene Authentifizierungsfluss, z. B. für Datenbanken, Caches, Nachrichten oder KI-Dienste, erfordert ein sehr hohes Vertrauen in die Anwendung und trägt Risiken, die in anderen Flüssen nicht vorhanden sind. Verwenden Sie diesen Fluss nur, wenn sicherere Optionen wie verwaltete Identitäten für kennwortlose oder schlüssellose Verbindungen nicht geeignet sind. Bei Vorgängen des lokalen Computers bevorzugen Sie Benutzeridentitäten für kennwortlose oder schlüssellose Verbindungen.
API-Änderungen
- Die Änderungen an den Listeneranmerkungen finden Sie im Migrationsleitfaden der <<Migrations-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> Bibliothek.
- Legen Sie
EventHubOperationab, wobei die abonnierende Funktion in die KlasseEventHubsMessageListenerContainerverschoben wurde und die sendende Funktion inEventHubsTemplateverschoben wurde. - Benennen Sie
EventHubInboundChannelAdapterinEventHubsInboundChannelAdapterum 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
CheckpointConfigInstanziierungsstil 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#setCheckpointConfigaufrufen. - Drop-API
EventHubOperation#setBatchConsumerConfig. Um die batchaufwendige Konfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer die beiden MethodenEventHubsContainerProperties#getBatch#setMaxSizeundEventHubsContainerProperties#getBatch#setMaxWaitTimeaufrufen. - Ändern Sie für den Modus "Batchverwendung" die nachrichtenkopfzeilennamen, die aus batchierten Nachrichten konvertiert wurden.
- Ändern Sie den Nachrichtenkopf von
azure_eventhub_enqueued_timeinazure_eventhubs_batch_converted_enqueued_time. - Ändern Sie den Nachrichtenkopf von
azure_eventhub_offsetinazure_eventhubs_batch_converted_offset. - Ändern Sie den Nachrichtenkopf von
azure_eventhub_sequence_numberinazure_eventhubs_batch_converted_sequence_number. - Ändern Sie den Nachrichtenkopf von
azure_partition_keyinazure_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
BATCHPrüfpunktmodus funktioniert jetzt nur im Batch-Nutzungsmodus, der aktiviert werden kann, indemListenerMode.BATCHan 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
EventHubsInboundChannelAdapterBeispielcode: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; } }DefaultMessageHandlerBeispielcode: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
EventHubOperationab, wobei die abonnierende Funktion in die KlasseEventHubsMessageListenerContainerverschoben wurde und die sendende Funktion inEventHubsTemplateverschoben wurde. - Benennen Sie
EventHubInboundChannelAdapterinEventHubsInboundChannelAdapterum 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
CheckpointConfigInstanziierungsstil 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#setCheckpointConfigaufrufen. - Drop-API
EventHubOperation#setBatchConsumerConfig. Um die batchaufwendige Konfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer die beiden MethodenEventHubsContainerProperties#getBatch#setMaxSizeundEventHubsContainerProperties#getBatch#setMaxWaitTimeaufrufen. - Ändern Sie für den Modus "Batchverwendung" die nachrichtenkopfzeilennamen, die aus batchierten Nachrichten konvertiert wurden.
- Ändern Sie den Nachrichtenkopf von
azure_eventhub_enqueued_timeinazure_eventhubs_batch_converted_enqueued_time. - Ändern Sie den Nachrichtenkopf von
azure_eventhub_offsetinazure_eventhubs_batch_converted_offset. - Ändern Sie den Nachrichtenkopf von
azure_eventhub_sequence_numberinazure_eventhubs_batch_converted_sequence_number. - Ändern Sie den Nachrichtenkopf von
azure_partition_keyinazure_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
BATCHPrüfpunktmodus funktioniert jetzt nur im Batch-Nutzungsmodus, der aktiviert werden kann, indemListenerMode.BATCHan 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-migratorwä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-servicebusunterstü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
ServiceBusQueueOperationundServiceBusTopicOperationab, wobei die abonnierende Funktion in die KlasseServiceBusMessageListenerContainerverschoben wurde und die sendende Funktion inServiceBusTemplateverschoben wurde. - Legen Sie
ServiceBusQueueInboundChannelAdapterundServiceBusTopicInboundChannelAdapterab, 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#setCheckpointConfigundServiceBusTopicOperation#setCheckpointConfig. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer stattdessen die MethodeServiceBusContainerProperties#setAutoCompleteaufrufen. Um den AutoVervollständigen-Modus zu deaktivieren, entsprichtMANUALPrüfpunktmodus, und um ihn zu aktivieren, wird derRECORDModus ausgelöst. - Drop-APIs
ServiceBusQueueOperatio#setClientConfigundServiceBusTopicOperation#setClientConfig. Um die zugrunde liegendeServiceBusProcessorClientzu konfigurieren, die vom Eingehenden Kanaladapter verwendet wird, können Benutzer stattdessenServiceBusContainerPropertiesverwenden. - Legen Sie
CompletableFutureUnterstützung inServiceBusTemplateundDefaultMessageHandlerab, unterstützen Sie stattdessenReactor. - Fügen Sie eine neue API von
ServiceBusTemplate#setDefaultEntityTypehinzu, um den Entitätstyp anzugeben, der erforderlich ist, wenn für diePropertiesSupplier<String, ProducerProperties>keineProducerProperties#entityTypebereitgestellt wird. - Nachrichtenkopf
AzureHeaders.RAW_IDablegen . 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
ServiceBusInboundChannelAdapterBeispielcode:Legacycode zur Verwendung von
ServiceBusQueueInboundChannelAdapteroderServiceBusTopicInboundChannelAdapter: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; } }DefaultMessageHandlerBeispielcode: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
ServiceBusQueueOperationundServiceBusTopicOperationab, wobei die abonnierende Funktion in die KlasseServiceBusMessageListenerContainerverschoben wurde und die sendende Funktion inServiceBusTemplateverschoben wurde. - Legen Sie
ServiceBusQueueInboundChannelAdapterundServiceBusTopicInboundChannelAdapterab, 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#setCheckpointConfigundServiceBusTopicOperation#setCheckpointConfig. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer stattdessen die MethodeServiceBusContainerProperties#setAutoCompleteaufrufen. Um den AutoVervollständigen-Modus zu deaktivieren, entsprichtMANUALPrüfpunktmodus, und um ihn zu aktivieren, wird derRECORDModus ausgelöst. - Drop-APIs
ServiceBusQueueOperation#setClientConfigundServiceBusTopicOperation#setClientConfig. Um die zugrunde liegendeServiceBusProcessorClientzu konfigurieren, die vom Eingehenden Kanaladapter verwendet wird, können Benutzer stattdessenServiceBusContainerPropertiesverwenden. - Legen Sie
CompletableFutureUnterstützung inServiceBusTemplateundDefaultMessageHandlerab, unterstützen Sie stattdessenReactor. - Fügen Sie eine neue API von
ServiceBusTemplate#setDefaultEntityTypehinzu, um den Entitätstyp anzugeben, der erforderlich ist, wenn für diePropertiesSupplier<String, ProducerProperties>keineProducerProperties#entityTypebereitgestellt wird. - Nachrichtenkopf
AzureHeaders.RAW_IDablegen . 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-migratorwä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.queuegeä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
StorageQueueOperationab, und stellen Sie stattdessenStorageQueueTemplatebereit. - Legen Sie
checkpoint-modeKonfiguration inStorageQueueTemplateab, unterstützen sie nur denMANUALModus.
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
StorageQueueOperationab, und stellen Sie stattdessenStorageQueueTemplatebereit. - Legen Sie
checkpoint-modeKonfiguration inStorageQueueTemplateab, unterstützen sie nur denMANUALModus.
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-migratorwä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-wartezeit | 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
Anmerkung
Microsoft empfiehlt die Verwendung des sichersten Authentifizierungsflusses, der verfügbar ist. Der in diesem Verfahren beschriebene Authentifizierungsfluss, z. B. für Datenbanken, Caches, Nachrichten oder KI-Dienste, erfordert ein sehr hohes Vertrauen in die Anwendung und trägt Risiken, die in anderen Flüssen nicht vorhanden sind. Verwenden Sie diesen Fluss nur, wenn sicherere Optionen wie verwaltete Identitäten für kennwortlose oder schlüssellose Verbindungen nicht geeignet sind. Bei Vorgängen des lokalen Computers bevorzugen Sie Benutzeridentitäten für kennwortlose oder schlüssellose Verbindungen.
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, consumersoder 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, consumersoder 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, consumersoder 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-migratorwä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-servicebuszusammengeführt.
Wichtig
Der Bindemitteltyp wird aus servicebus-queue und servicebus-topic als servicebuskombiniert.
In der folgenden Tabelle sind die neuen Konfigurationseigenschaften von spring-cloud-azure-stream-binder-servicebusaufgefü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 falseist.
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
Anmerkung
Microsoft empfiehlt die Verwendung des sichersten Authentifizierungsflusses, der verfügbar ist. Der in diesem Verfahren beschriebene Authentifizierungsfluss, z. B. für Datenbanken, Caches, Nachrichten oder KI-Dienste, erfordert ein sehr hohes Vertrauen in die Anwendung und trägt Risiken, die in anderen Flüssen nicht vorhanden sind. Verwenden Sie diesen Fluss nur, wenn sicherere Optionen wie verwaltete Identitäten für kennwortlose oder schlüssellose Verbindungen nicht geeignet sind. Bei Vorgängen des lokalen Computers bevorzugen Sie Benutzeridentitäten für kennwortlose oder schlüssellose Verbindungen.
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, consumersoder 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, consumersoder 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, consumersoder 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
- Nachrichtenkopf
AzureHeaders.RAW_IDablegen . 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, @AzureMessageListenersund @EnableAzureMessaging Anmerkungen derzeit nicht unterstützt werden.