Freigeben über


Migrationshandbuch für Spring Cloud Azure 4.0

Dieser Leitfaden hilft bei der Migration zu Spring Cloud Azure 4.0 aus älteren Azure Spring-Bibliotheken.

Einleitung

Wir rufen Bibliotheken auf, deren Gruppen-ID und Artefakt-ID dem Muster com.azure.spring:spring-cloud-azure-* der modernen-Bibliotheken entsprechen, und bibliotheken mit Mustern com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-*oder com.azure.spring:azure-spring-integration-* den älteren-Bibliotheken.

Dieser Leitfaden konzentriert sich auf parallele Vergleiche für ähnliche Konfigurationen zwischen den modernen und älteren Bibliotheken.

Vertrautheit mit com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-* oder com.azure.spring:azure-spring-integration-* Paket wird angenommen.

Wenn Sie mit den Spring Cloud Azure 4.0-Bibliotheken noch nicht fertig sind, lesen Sie den Spring Cloud Azure-Entwicklerleitfaden.

Migrationsvorteile

Eine natürliche Frage zu stellen, wenn Sie überlegen, ob eine neue Version oder Bibliothek angenommen werden soll, ist ihre Vorteile. Da Azure reift und von einer vielfältigen Gruppe von Entwicklern übernommen wurde, haben wir uns darauf konzentriert, die Muster und Methoden zu erlernen, um die Produktivität von Entwicklern zu verbessern und die Lücken zu verstehen, die die Spring Cloud Azure-Bibliotheken aufweisen.

Es gab mehrere Bereiche eines konsistenten Feedbacks, das in den Spring Cloud Azure-Bibliotheken ausgedrückt wurde. Am wichtigsten ist, dass die Bibliotheken für verschiedene Azure-Dienste nicht den vollständigen Satz von Konfigurationen aktiviert haben. Darüber hinaus hat die Inkonsistenz der Projektbenennung, Artefakt-IDs, Versionen und Konfigurationen die Lernkurve steil gestaltet.

Um die Entwicklungserfahrung in Spring Cloud Azure-Bibliotheken zu verbessern, wurde eine Reihe von Designrichtlinien eingeführt, um sicherzustellen, dass Spring Cloud Azure-Bibliotheken ein natürliches und idiomatisches Verhalten im Hinblick auf das Spring-Ökosystem haben. Weitere Details finden Sie im Designdokument für interessierte Personen.

Spring Cloud Azure 4.0 bietet die gemeinsame Erfahrung in Bibliotheken, die in verschiedene Spring-Projekte integriert werden, z. B. Spring Boot, Spring Integration, Spring Cloud Stream usw. Die gemeinsame Benutzeroberfläche umfasst:

  • Eine einheitliche BOM, die alle Spring Cloud Azure 4.0-Bibliotheken enthält.
  • Eine konsistente Benennungskonvention für Artefakte.
  • Eine einheitliche Möglichkeit zum Konfigurieren von Anmeldeinformationen, Proxy, Wiederholung, Cloudumgebung und Transportebeneneinstellungen.
  • Unterstützen aller Authentifizierungsmethoden, die ein Azure Service- oder Azure Service SDK unterstützt.

Überblick

Dieser Migrationsleitfaden besteht aus den folgenden Abschnitten:

  • Namensänderungen für Spring Cloud Azure 4.0
  • Artefaktänderungen: umbenannt/hinzugefügt/gelöscht
  • Abhängigkeitsänderungen
  • Authentifizierungsänderungen
  • Konfigurationseigenschaften
  • API-Unterbrechungsänderungen
  • Bibliotheksänderungen

Namensänderungen

Es gab nie einen konsistenten oder offiziellen Namen, um alle Spring Cloud Azure-Bibliotheken aufzurufen. Einige von ihnen wurden Azure Spring Boot und einige von ihnen Spring on 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>5.20.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Anmerkung

Wenn Sie Spring Boot 2.x verwenden, müssen Sie unbedingt die spring-cloud-azure-dependencies Version auf 4.19.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-spring-boot-starter spring-cloud-azure-starter Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem neuen spring-cloud-azure-starter Artefakt zusammengeführt werden.
azure-spring-boot-starter-active-directory spring-cloud-azure-starter-active-directory Das Artefakt wurde umbenannt.
azure-spring-boot-starter-active-directory-b2c spring-cloud-azure-starter-active-directory-b2c Das Artefakt wurde umbenannt.
azure-spring-boot-starter-cosmos spring-cloud-azure-starter-data-cosmos Das Artefakt wurde umbenannt, um datahinzuzufügen, was die Verwendung von Spring Data Azure Cosmos DB angibt.
azure-spring-boot-starter-keyvault-certificates nicht zutreffend Nicht in dieser Version enthalten, wird aber in späterer Version unterstützt.
azure-spring-boot-starter-keyvault-secrets spring-cloud-azure-starter-keyvault-secrets Das Artefakt wurde umbenannt.
azure-spring-boot-starter-servicebus-jms spring-cloud-azure-starter-servicebus-jms Das Artefakt wurde umbenannt.
Azure-spring-boot-starter-storage spring-cloud-azure-starter-storage-blob
spring-cloud-azure-starter-storage-file-share
Das Legacyartefakt enthält die Funktionalität von Storage Blob und Dateifreigabe, es wurde in zwei separate Artefakte in 4.0, spring-cloud-azure-starter-storage-blob und spring-cloud-azure-starter-storage-file-share kompliziert.
azure-spring-boot nicht zutreffend Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem neuen spring-cloud-azure-autoconfigure Artefakt zusammengeführt werden.
azure-spring-cloud-autoconfigure nicht zutreffend Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem neuen spring-cloud-azure-autoconfigure Artefakt zusammengeführt werden.
Azure-spring-cloud-context nicht zutreffend Dieses Artefakt wurde mit allen Funktionen mit der neuen spring-cloud-azure-autoconfigure und spring-cloud-azure-resourcemanager Artefakten zusammengeführt.
azure-spring-cloud-messaging spring-messaging-azure Die Messaginglisteneranmerkung wurde gelöscht.
azure-spring-cloud-starter-cache nicht zutreffend Dieses Artefakt wurde für die Verwendung von Redis einfach spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager und spring-cloud-azure-starter gelöscht. Weitere Informationen zur Nutzung finden Sie unter Spring Cloud Azure Redis-Unterstützung.
azure-spring-cloud-starter-eventhubs-kafka nicht zutreffend Dieses Artefakt wurde für die Verwendung von Kafka gelöscht, fügen Sie einfach spring kafka, spring-cloud-azure-resourcemanager und spring-cloud-azure-starter hinzu. Weitere Informationen zur Nutzung finden Sie unter Spring Cloud Azure Kafka-Unterstützung.
azure-spring-cloud-starter-eventhubs spring-cloud-azure-starter-integration-eventhubs Das Artefakt wurde umbenannt, um integrationhinzuzufügen, was die Verwendung der Federintegration mit Event Hubs angibt.
azure-spring-cloud-starter-servicebus spring-cloud-azure-starter-integration-servicebus Das Artefakt wurde umbenannt, um 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 spring-cloud-azure-stream-binder-eventhubs Dieses Artefakt wurde mit einem neuen Design umgestaltet, hauptsächlich spring-cloud-azure-stream-binder-eventhubs und spring-cloud-azure-stream-binder-eventhubs-core.
azure-spring-cloud-stream-binder-service-core spring-cloud-azure-stream-binder-servicebus-core Das Artefakt wurde umbenannt.
azure-spring-cloud-stream-binder-servicebus-queue spring-cloud-azure-stream-binder-servicebus Dieses Artefakt wurde mit allen Funktionen mit dem spring-cloud-azure-stream-binder-servicebus Artefakt zusammengeführt.
Azure-spring-cloud-stream-binder-servicebus-topic spring-cloud-azure-stream-binder-servicebus Dieses Artefakt wurde mit allen Funktionen mit dem spring-cloud-azure-stream-binder-servicebus Artefakt zusammengeführt.
azure-spring-integration-core spring-integration-azure-core Das Artefakt wurde umbenannt.
azure-spring-integration-eventhubs spring-integration-azure-eventhubs Benennen Sie das Artefakt um.
azure-spring-integration-servicebus spring-integration-azure-servicebus Benennen Sie das Artefakt um.
Azure-spring-integration-storage-queue spring-integration-azure-storage-queue Benennen Sie das Artefakt um.
nicht zutreffend spring-cloud-azure-aktor Das neu hinzugefügte Spring Cloud Azure Actuator Artefakt.
nicht zutreffend spring-cloud-azure-actuator-autoconfigure Das neu hinzugefügte Spring Cloud Azure Actuator AutoConfigure-Artefakt, einschließlich der automatischen Konfiguration für Aktoren.
nicht zutreffend spring-cloud-azure-autoconfigure Neu hinzugefügtes Spring Cloud Azure AutoConfigure-Artefakt, einschließlich aller automatischen Konfiguration für SDK-Clients, Spring Security-Unterstützung, Spring Data-Unterstützung und Spring Integration-Unterstützung.
nicht zutreffend spring-cloud-azure-core Neu hinzugefügtes Spring Cloud Azure Core-Artefakt, einschließlich aller Kernfunktionen.
nicht zutreffend spring-cloud-azure-resourcemanager Neu hinzugefügtes Ressourcen-Manager-Artefakt. Es ist die Kernbibliothek mit Azure Resource Manager, um Metadaten zu lesen und Ressourcen zu erstellen.
nicht zutreffend spring-cloud-azure-service Neu hinzugefügtes Spring Cloud Azure Service-Artefakt, einschließlich Abstraktionen für Azure-Dienste.
nicht zutreffend spring-cloud-azure-starter-appconfiguration Neu hinzugefügter Start für die Verwendung des Azure App Configuration SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-cosmos Neu hinzugefügter Start für die Verwendung des Azure Cosmos DB SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-eventhubs Neu hinzugefügter Start für die Verwendung des Azure Event Hubs SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-servicebus Neu hinzugefügter Start für die Verwendung des Azure Service Bus SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-storage-blob Neu hinzugefügter Start für die Verwendung des Azure Storage Blob SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-storage-file-share Neu hinzugefügter Start für die Verwendung des Azure Storage File Share SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-storage-queue Neu hinzugefügter Start für die Verwendung des Azure Storage Queue SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-stream-eventhubs Neu hinzugefügter Start für die Verwendung von Azure Event Hubs Spring Cloud Stream Binder.
nicht zutreffend spring-cloud-azure-starter-stream-servicebus Neu hinzugefügter Start für die Verwendung von Azure Service Bus Spring Cloud Stream Binder
nicht zutreffend spring-cloud-azure-stream-binder-eventhubs-core Neu hinzugefügtes Spring Cloud Stream-Kernelement für Azure Event Hubs.

Abhängigkeitsänderungen

Einige unnötige Abhängigkeiten wurden in den älteren Artefakten enthalten, die wir in den modernen Spring Cloud Azure 4.0-Bibliotheken entfernt haben. Achten Sie darauf, die entfernten Abhängigkeiten manuell zu Ihrem Projekt hinzuzufügen, um Abstürze zu verhindern.

Bibliotheken mit Abhängigkeitsänderungen umfassen:

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:

API-Unterbrechungsänderungen

Ausführliche Informationen zu änderungen am API-Bruch in den einzelnen Bibliotheken erhalten Sie unter den folgenden Links:

Bibliotheksänderungen

Die Änderungen in den einzelnen Bibliotheken werden wie folgt eingeführt.

Von azure-spring-boot-starter bis spring-cloud-azure-starter

Dieses Handbuch soll die Migration zu spring-cloud-azure-starter- ab Version 3 von azure-spring-boot-starter-unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
  • Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt Authentifizierungsänderungen.
  • Informationen zum Nutzen von spring-boot-properties-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

Abhängigkeitsänderungen

Einige unnötige Abhängigkeiten wurden in den älteren Artefakten enthalten, die wir in den modernen Spring Cloud Azure 4.0-Bibliotheken entfernt haben. Achten Sie darauf, die entfernten Abhängigkeiten manuell zu Ihrem Projekt hinzuzufügen, um unbeabsichtigten Absturz zu verhindern.

Die folgende Tabelle zeigt die entfernten Abhängigkeiten:

Entfernte Abhängigkeiten Beschreibung
org.springframework.boot:spring-boot-starter-validation Schließen Sie den Überprüfungsstarter ein, wenn Sie "Hibernate Validator" verwenden möchten.

Von azure-spring-boot-starter-active-directory bis spring-cloud-azure-starter-active-directory

Dieses Handbuch soll die Migration zu spring-cloud-azure-starter-active-directory- ab Version 3 von azure-spring-boot-starter-active-directoryunterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
  • Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt Authentifizierungsänderungen.
  • Informationen zum Nutzen von spring-boot-properties-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

Abhängigkeitsänderungen

Einige unnötige Abhängigkeiten im Legacyartefakt wurden seit der modernen Spring Cloud Azure 4.0-Bibliothek entfernt. Fügen Sie diese entfernten Abhängigkeiten zu Ihrem Projekt hinzu, um unbeabsichtigten Absturz zu verhindern.

Die folgende Tabelle zeigt die entfernten Abhängigkeiten:

Entfernte Abhängigkeiten Beschreibung
com.fasterxml.jackson.core:jackson-databind Fügen Sie diese Abhängigkeit bei Bedarf zu Ihrem Projekt hinzu.
io.projectreactor.netty:reactor-netty Fügen Sie diese Abhängigkeit bei Bedarf zu Ihrem Projekt hinzu.
org.springframework.boot:spring-boot-starter-validation Fügen Sie diese Abhängigkeit bei Bedarf zu Ihrem Projekt hinzu.
org.springframework.boot:spring-boot-starter-webflux Fügen Sie diese Abhängigkeit bei Bedarf zu Ihrem Projekt hinzu.

SDK-Konfigurationsänderungen

Dieser Abschnitt enthält die Änderungen zu den hinzugefügten, entfernten und geänderten Eigenschaften.

  • Die folgenden beiden Punkte sind die wichtigsten Punkte, auf die Sie achten müssen:
  1. Das Präfix aller Konfigurationseigenschaftennamen wurde von azure.activedirectory in spring.cloud.azure.active-directorygeändert.
  2. Neue Eigenschaft spring.cloud.azure.active-directory.enabled wird hinzugefügt, um microsoft Entra verwandte Features zu aktivieren/zu deaktivieren. Der Standardwert ist false.

Die folgende Tabelle zeigt die Eigenschaftenzuordnungen zwischen azure-spring-boot-starter-active-directory und spring-cloud-azure-starter-active-directory:

Legacyeigenschaften Moderne Eigenschaften
azure.activedirectory.app-id-uri spring.cloud.azure.active-directory.app-id-uri
azure.activedirectory.application-type spring.cloud.azure.active-directory.application-type
azure.activedirectory.authorization-clients spring.cloud.azure.active-directory.authorization-clients
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.on-demand spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.on-demand
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.scopes spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.scopes
azure.activedirectory.authenticate-additional-parameters spring.cloud.azure.active-directory.authenticate-additional-parameters
azure.activedirectory.base-uri spring.cloud.azure.active-directory.profile.environment.active-directory-endpoint
azure.activedirectory.client-id spring.cloud.azure.active-directory.credential.client-id
azure.activedirectory.client-secret spring.cloud.azure.active-directory.credential.client-secret
azure.activedirectory.graph-membership-uri Weitere Informationen finden Sie in der folgenden Tabelle.
azure.activedirectory.jwt-connect-timeout spring.cloud.azure.active-directory.jwt-connect-timeout.
azure.activedirectory.jwt-read-timeout spring.cloud.azure.active-directory.jwt-read-timeout.
azure.activedirectory.jwt-size-limit spring.cloud.azure.active-directory.jwt-size-limit.
azure.activedirectory.jwk-set-cache-lebensdauer spring.cloud.azure.active-directory.jwk-set-cache-lebensdauer.
azure.activedirectory.jwk-set-cache-refresh-time spring.cloud.azure.active-directory.jwk-set-cache-refresh-time
azure.activedirectory.post-logout-redirect-uri spring.cloud.azure.active-directory.post-logout-redirect-uri
azure.activedirectory.session-stateless spring.cloud.azure.active-directory.session-stateless
azure.activedirectory.redirect-uri-template spring.cloud.azure.active-directory.redirect-uri-template
azure.activedirectory.resource-server.claim-to-authority-prefix-map spring.cloud.azure.active-directory.resource-server.claim-to-authority-prefix-map
azure.activedirectory.resource-server.principal-claim-name spring.cloud.azure.active-directory.resource-server.principal-claim-name
azure.activedirectory.tenant-id spring.cloud.azure.active-directory.profile.tenant-id
azure.activedirectory.user-group.allowed-group-ids spring.cloud.azure.active-directory.user-group.allowed-group-ids
azure.activedirectory.user-group.allowed-group-names spring.cloud.azure.active-directory.user-group.allowed-group-names
azure.activedirectory.user-name-attribute spring.cloud.azure.active-directory.user-name-attribute
  • Der Werttyp der folgenden Eigenschaften wird von long in Durationgeändert:

    • jwt-connect-timeout
    • jwt-read-timeout
    • jwk-set-cache-lifespan
    • jwk-set-cache-refresh-time.
  • Die folgenden Eigenschaften werden entfernt:

    • azure.activedirectory.allow-telemetry
    • azure.activedirectory.user-group.enable-full-list
    • azure.activedirectory.graph-base-uri
    • azure.activedirectory.graph-membership-uri
  • Die folgenden Eigenschaften werden hinzugefügt:

    • spring.cloud.azure.active-directory.enabled
    • spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
    • spring.cloud.azure.active-directory.user-group.use-transitive-members

Anmerkung

Die Funktion von azure.activedirectory.graph-membership-uri wurde durch 2 Eigenschaften ersetzt: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint und spring.cloud.azure.active-directory.user-group.use-transitive-members. Die erste Eigenschaft wird verwendet, um den Hostnamen anzugeben, und das zweite flag für die Verwendung des URL-Pfads: v1.0/me/memberOf oder v1.0/me/transitiveMemberOf.

Hier sind einige Beispiele für die Migration:

  • Beispiel 1. Fall 1

    • Für Legacy: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf

    • Für modern: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=https://graph.microsoft.com/ + spring.cloud.azure.active-directory.user-group.use-transitive-members=false

  • Beispiel 2. Fall 2

    • Für Legacy: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf

    • Für modern: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=https://graph.microsoft.com/ + spring.cloud.azure.active-directory.user-group.use-transitive-members=true

API-Änderungen

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-active-directory zu spring-cloud-azure-starter-active-directory:

Legacyklasse Moderne Klasse
com.azure.spring.aad.webapi.AADJwtBearerTokenAuthenticationConverter com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter
com.azure.spring.aad.webapi.AADResourceServerProperties com.azure.spring.cloud.autoconfigure.aad.properties.AadResourceServerProperties
com.azure.spring.aad.webapi.AADResourceServerWebSecurityConfigurerAdapter com.azure.spring.cloud.autoconfigure.aad.AadResourceServerWebSecurityConfigurerAdapter
com.azure.spring.aad.webapp.AADWebSecurityConfigurerAdapter com.azure.spring.cloud.autoconfigure.aad.AadWebSecurityConfigurerAdapter
com.azure.spring.aad.webapp.AuthorizationClientProperties com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties
com.azure.spring.aad.AADApplicationType com.azure.spring.cloud.autoconfigure.aad.properties.AadApplicationType
com.azure.spring.aad.AADAuthorizationGrantType com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationGrantType
com.azure.spring.aad.AADAuthorizationServerEndpoints com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationServerEndpoints
com.azure.spring.aad.AADClientRegistrationRepository com.azure.spring.cloud.autoconfigure.aad.AadClientRegistrationRepository
com.azure.spring.aad.AADTrustedIssuerRepository com.azure.spring.cloud.autoconfigure.aad.AadTrustedIssuerRepository
com.azure.spring.autoconfigure.aad.AADAppRoleStatelessAuthenticationFilter com.azure.spring.cloud.autoconfigure.aad.filter.AadAppRoleStatelessAuthenticationFilter
com.azure.spring.autoconfigure.aad.AADAuthenticationFilter com.azure.spring.cloud.autoconfigure.aad.filter.AadAuthenticationFilter
com.azure.spring.autoconfigure.aad.AADAuthenticationProperties com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthenticationProperties
com.azure.spring.autoconfigure.aad.UserPrincipal com.azure.spring.cloud.autoconfigure.aad.filter.UserPrincipal
com.azure.spring.autoconfigure.aad.UserPrincipalManager com.azure.spring.cloud.autoconfigure.aad.filter.UserPrincipalManager

In diesem Abschnitt werden die entfernten Klassen aus azure-spring-boot-starter-active-directory aufgelistet.

  • Legacyklasse entfernt

    • com.azure.spring.aad.webapp.AADHandleConditionalAccessFilter
    • com.azure.spring.aad.webapi.validator.AADJwtAudienceValidator
    • com.azure.spring.aad.webapi.validator.AADJwtClaimValidator

Von azure-spring-boot-starter-active-directory-b2c bis spring-cloud-azure-starter-active-directory-b2c

Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-active-directory-b2c ab Version 3 von azure-spring-boot-starter-active-directory-b2cunterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
  • Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt Authentifizierungsänderungen.
  • Informationen zum Nutzen von spring-boot-properties-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

Abhängigkeitsänderungen

Einige unnötige Abhängigkeiten wurden in den älteren Artefakten enthalten, die wir in den modernen Spring Cloud Azure 4.0-Bibliotheken entfernt haben. Achten Sie darauf, die entfernten Abhängigkeiten manuell zu Ihrem Projekt hinzuzufügen, um unbeabsichtigten Absturz zu verhindern.

Die folgende Tabelle zeigt die entfernten Abhängigkeiten:

Entfernte Abhängigkeiten Beschreibung
org.springframework.boot:spring-boot-starter-validation Schließen Sie den Überprüfungsstarter ein, wenn Sie "Hibernate Validator" verwenden möchten.

SDK-Konfigurationsänderungen

Dieser Abschnitt enthält die Änderungen zu den hinzugefügten, entfernten und geänderten Eigenschaften.

  • Die folgenden beiden Punkte sind die wichtigsten Punkte, auf die Sie achten müssen:
  1. Alle Konfigurationseigenschaftennamen haben das Präfix von azure.activedirectory.b2c in spring.cloud.azure.active-directory.b2cgeändert.
  2. Neue Eigenschaft spring.cloud.azure.active-directory.b2c.enabled wird hinzugefügt, um Azure AD B2C-bezogene Features zu aktivieren/zu deaktivieren. Der Standardwert ist "false".

Die folgende Tabelle zeigt die Eigenschaftenzuordnungen von azure-spring-boot-starter-active-directory-b2c zu spring-cloud-azure-starter-active-directory-b2c:

Legacyeigenschaften Moderne Eigenschaften
azure.activedirectory.b2c.authenticate-additional-parameters spring.cloud.azure.active-directory.b2c.authenticate-additional-parameters
azure.activedirectory.b2c.authorization-clients spring.cloud.azure.active-directory.b2c.authorization-clients
azure.activedirectory.b2c.authorization-clients.<AZURE_CLIENT_NAME>.authorization-grant-type spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME>.authorization-grant-type
azure.activedirectory.b2c.authorization-clients.<AZURE_CLIENT_NAME>.scopes spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME>.scopes
azure.activedirectory.b2c.app-id-uri spring.cloud.azure.active-directory.b2c.app-id-uri
azure.activedirectory.b2c.base-uri spring.cloud.azure.active-directory.b2c.base-uri
azure.activedirectory.b2c.client-id spring.cloud.azure.active-directory.b2c.credential.client-id
azure.activedirectory.b2c.client-secret spring.cloud.azure.active-directory.b2c.credential.client-secret
azure.activedirectory.b2c.jwt-connect-timeout spring.cloud.azure.active-directory.b2c.jwt-connect-timeout
azure.activedirectory.b2c.jwt-read-timeout spring.cloud.azure.active-directory.b2c.jwt-read-timeout
azure.activedirectory.b2c.jwt-size-limit spring.cloud.azure.active-directory.b2c.jwt-size-limit
azure.activedirectory.b2c.login-flow spring.cloud.azure.active-directory.b2c.login-flow
azure.activedirectory.b2c.logout-success-url spring.cloud.azure.active-directory.b2c.logout-success-url
azure.activedirectory.b2c.reply-url spring.cloud.azure.active-directory.b2c.reply-url
azure.activedirectory.b2c.tenant-id spring.cloud.azure.active-directory.b2c.profile.tenant-id
azure.activedirectory.b2c.user-flows spring.cloud.azure.active-directory.b2c.user-flows
azure.activedirectory.b2c.user-name-attribute-name spring.cloud.azure.active-directory.b2c.user-name-attribute-name
  • Eigenschaften aus azure-spring-boot-starter-active-directory-b2c entfernt:

    • azure.activedirectory.b2c.allow-telemetry
    • azure.activedirectory.b2c.tenant
  • Der Werttyp der folgenden Eigenschaften wird von long in Durationgeändert:

    • jwt-connect-timeout
    • jwt-read-timeout

API-Änderungen

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-active-directory-b2c zu spring-cloud-azure-starter-active-directory-b2c:

Legacyklasse Moderne Klasse
com.azure.spring.autoconfigure.b2c.AADB2CAuthorizationRequestResolver com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cAuthorizationRequestResolver
com.azure.spring.autoconfigure.b2c.AADB2CJwtBearerTokenAuthenticationConverter com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter
com.azure.spring.autoconfigure.b2c.AADB2CLogoutSuccessHandler com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cLogoutSuccessHandler
com.azure.spring.autoconfigure.b2c.AADB2COidcLoginConfigurer com.azure.spring.cloud.autoconfigure.aadb2c.AadB2COidcLoginConfigurer
com.azure.spring.autoconfigure.b2c.AADB2CProperties com.azure.spring.cloud.autoconfigure.aadb2c.properties.AadB2cProperties
com.azure.spring.autoconfigure.b2c.AADB2CTrustedIssuerRepository com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cTrustedIssuerRepository
com.azure.spring.autoconfigure.b2c.AuthorizationClientProperties com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties

Von azure-spring-boot-starter-cosmos bis spring-cloud-azure-starter-data-cosmos

Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-data-cosmos ab Version 3 von azure-spring-boot-starter-cosmosunterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
  • Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt Authentifizierungsänderungen.
  • Informationen zum Nutzen von spring-boot-properties-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

SDK-Konfigurationsänderungen

Alle Konfigurationseigenschaftennamen haben das Präfix von azure.cosmos in spring.cloud.azure.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-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

SDK-Konfigurationsänderungen

Dieser Abschnitt enthält die Änderungen zu den hinzugefügten, entfernten und geänderten Eigenschaften.

Die folgende Tabelle zeigt die Eigenschaftenzuordnungen von azure-spring-boot-starter-keyvault-secrets zu spring-cloud-azure-starter-keyvault-secrets:

Legacyeigenschaften Moderne Eigenschaften
azure.keyvault.case-sensitive-keys spring.cloud.azure.keyvault.secret.property-source[n].case-sensitive
azure.keyvault.certificate-password spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-password
azure.keyvault.certificate-path spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-path
azure.keyvault.client-id spring.cloud.azure.keyvault.secret.property-source[n].credential.client-id
azure.keyvault.client-key spring.cloud.azure.keyvault.secret.property-source[n].credential.client-secret
azure.keyvault.enabled spring.cloud.azure.keyvault.secret.property-source-enabled und spring.cloud.azure.keyvault.secret.property-source-enabled
azure.keyvault.order Wird nicht mehr unterstützt. Verwenden Sie stattdessen die Reihenfolge in property-source[n].
azure.keyvault.refresh-interval spring.cloud.azure.keyvault.secret.property-source[n].refresh-interval
azure.keyvault.secret-keys spring.cloud.azure.keyvault.secret.property-source[n].secret-keys
azure.keyvault.tenant-id spring.cloud.azure.keyvault.secret.property-source[n].profile.tenant-id
azure.keyvault.uri spring.cloud.azure.keyvault.secret.property-source[n].endpoint
  • Eigenschaften aus spring-cloud-azure-starter-keyvault-secrets entfernt

azure.keyvault.allow-telemetry azure.keyvault.order

Die folgenden Punkte sollten Sie beachten:

  1. Alle Konfigurationseigenschaftennamen haben das Präfix von azure.keyvault in spring.cloud.azure.keyvault.secretgeändert.
  2. spring.cloud.azure.keyvault.secret.enabled wird verwendet, um alle Key Vault Secret-Features zu aktivieren, einschließlich der Konfiguration der Bohnen des geheimen Schlüsseltresorschlüssels (z. B. SecretClient und SecretAsyncClient) und das Hinzufügen von KeyVaultPropertySource in ConfigurableEnvironment.
  3. spring.cloud.azure.keyvault.secret.property-source-enabled wird verwendet, um alle KeyVaultPropertySourcezu aktivieren. Es wird nur wirksam, wenn spring.cloud.azure.keyvault.secret.enabled=true.
  4. Für allgemeine Azure-Eigenschaften (z. B. client, proxy, retry, credential, profile) und Key Vault-Eigenschaften (z. B. endpoint, service-version). Wenn spring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME nicht konfiguriert ist, werden spring.cloud.azure.keyvault.secret.PROPERTY_NAME verwendet.
  5. spring.cloud.azure.keyvault.secret.property-sources[n].resource ist spezifisch für eine eindeutige Azure-Ressource. Wenn sie also nicht konfiguriert ist, erhält sie keinen Wert von anderen Orten.

Von azure-spring-boot-starter-servicebus-jms bis spring-cloud-azure-starter-servicebus-jms

Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-servicebus-jms ab Version 3 von azure-spring-boot-starter-servicebus-jmsunterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
  • Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt Authentifizierungsänderungen.
  • Informationen zum Nutzen von spring-boot-properties-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

SDK-Konfigurationsänderungen

Konfigurationstyp für spring.jms.servicebus.idle-timeout von long(Millisekunden) in Duration Muster zur Lesbarkeit geändert.

Von azure-spring-boot-starter-storage bis spring-cloud-azure-starter-storage-blob

Dieses Handbuch soll die Migration zu spring-cloud-azure-starter-storage-blob ab Version 3 von azure-spring-boot-starter-storage-unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
  • Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt Authentifizierungsänderungen.
  • Informationen zum Nutzen von spring-boot-properties-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

SDK-Konfigurationsänderungen

Alle Konfigurationseigenschaftennamen haben das Präfix von azure.storage in spring.cloud.azure.storage.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-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

SDK-Konfigurationsänderungen

Alle Konfigurationseigenschaftennamen haben das Präfix von azure.storage in spring.cloud.azure.storage.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-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

SDK-Konfigurationsänderungen

Wichtig

Das Konfigurationspräfix wurde von spring.cloud.azure.eventhub in spring.cloud.azure.eventhubs. geändert.

Änderungen an den untergeordneten Einträgen für dieses Präfix finden Sie in den folgenden Tabellen:

Die folgende Tabelle zeigt Eigenschaftenzuordnungen von azure-spring-cloud-starter-eventhubs zu spring-cloud-azure-starter-integration-eventhubs:

Legacyeigenschaften Moderne Eigenschaften
spring.cloud.azure.resource-group spring.cloud.azure.eventhubs.resource.resource-group
spring.cloud.azure.eventhub.namespace spring.cloud.azure.eventhubs.namespace
spring.cloud.azure.eventhub.connection-string spring.cloud.azure.eventhubs.connection-string
spring.cloud.azure.eventhub.checkpoint-storage-account spring.cloud.azure.eventhubs.processor.checkpoint-store.account-name
spring.cloud.azure.eventhub.checkpoint-access-key spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key
spring.cloud.azure.eventhub.checkpoint-container spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name

Ändern Sie z. B. von:

spring:
  cloud:
    azure:
      eventhub:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        checkpoint-storage-account: ${AZURE_CHECKPOINT_STORAGE_ACCOUNT_NAME}
        checkpoint-access-key: ${AZURE_CHECKPOINT_ACCOUNT_KEY}
        checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER_NAME}

An:

spring:
  cloud:
    azure:
      eventhubs:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        processor:
          checkpoint-store:
            container-name: ${AZURE_STORAGE_CONTAINER_NAME}
            account-name: ${AZURE_STORAGE_ACCOUNT_NAME}
            account-key: ${AZURE_STORAGE_ACCOUNT_KEY}

API-Änderungen

  • Die Änderungen an den Listeneranmerkungen finden Sie im Migrationsleitfaden der <<Migrations-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> Bibliothek.
  • Legen Sie EventHubOperation ab, wobei die abonnierende Funktion in die Klasse EventHubsMessageListenerContainer verschoben wurde und die sendende Funktion in EventHubsTemplateverschoben wurde.
  • Benennen Sie EventHubInboundChannelAdapter in EventHubsInboundChannelAdapter um mit dem Dienst von Azure Event Hubs konsistent zu bleiben.
  • Ändern Sie den Konstruktor von EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) in EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) und EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Ändern Sie CheckpointConfig Instanziierungsstil in den einfachen Konstruktor anstelle des Buildstils.
  • Drop-API EventHubOperation#setCheckpointConfig. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer die Methode EventHubsContainerProperties#setCheckpointConfigaufrufen.
  • Drop-API EventHubOperation#setBatchConsumerConfig. Um die batchaufwendige Konfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer die beiden Methoden EventHubsContainerProperties#getBatch#setMaxSize und EventHubsContainerProperties#getBatch#setMaxWaitTime aufrufen.
  • Ändern Sie für den Modus "Batchverwendung" die nachrichtenkopfzeilennamen, die aus batchierten Nachrichten konvertiert wurden.
    • Ändern Sie den Nachrichtenkopf von azure_eventhub_enqueued_time in azure_eventhubs_batch_converted_enqueued_time.
    • Ändern Sie den Nachrichtenkopf von azure_eventhub_offset in azure_eventhubs_batch_converted_offset.
    • Ändern Sie den Nachrichtenkopf von azure_eventhub_sequence_number in azure_eventhubs_batch_converted_sequence_number.
    • Ändern Sie den Nachrichtenkopf von azure_partition_key in azure_batch_converted_partition_key.
  • Ignorieren Sie beim Veröffentlichen von Nachrichten in Event Hubs alle Nachrichtenkopfzeilen, die aus batchierten Nachrichten konvertiert wurden. Kopfzeilen umfassen:
    • azure_batch_converted_partition_key
    • azure_eventhubs_batch_converted_enqueued_time
    • azure_eventhubs_batch_converted_offset
    • azure_eventhubs_batch_converted_sequence_number
    • azure_eventhubs_batch_converted_system_properties
    • azure_eventhubs_batch_converted_application_properties
  • Der BATCH Prüfpunktmodus funktioniert jetzt nur im Batch-Nutzungsmodus, der aktiviert werden kann, indem ListenerMode.BATCH an den EventHubsInboundChannelAdapter-Konstruktor übergeben wird.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-starter-eventhubs zu spring-cloud-azure-starter-integration-eventhubs:

Legacyklasse Moderne Klasse
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.core.EventHubHeaders com.azure.spring.messaging.eventhubs.support.EventHubsHeaders
com.azure.spring.integration.core.api.CheckpointConfig com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointConfig
com.azure.spring.integration.core.api.CheckpointMode com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter

Beispielcodeausschnitt

  • EventHubsInboundChannelAdapter Beispielcode:

    Legacycode:

    public class Demo {
        @Bean
        public EventHubInboundChannelAdapter messageChannelAdapter(
            @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, EventHubOperation   eventhubOperation) {
            eventhubOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode  (CheckpointMode.MANUAL).build());
            EventHubInboundChannelAdapter adapter = new EventHubInboundChannelAdapter("EVENTHUB_NAME",
                eventhubOperation, "CONSUMER_GROUP");
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    }
    

    Moderner Code:

    public class Demo {
        @Bean
        public EventHubsMessageListenerContainer messageListenerContainer(EventHubsProcessorFactory processorFactory) {
            EventHubsContainerProperties containerProperties = new EventHubsContainerProperties();
            containerProperties.setEventHubName("EVENTHUB_NAME");
            containerProperties.setConsumerGroup("CONSUMER_GROUP");
            CheckpointConfig config = new CheckpointConfig(CheckpointMode.MANUAL);
            containerProperties.setCheckpointConfig(config);
            return new EventHubsMessageListenerContainer(processorFactory, containerProperties);
        }
    
        @Bean
        public EventHubsInboundChannelAdapter messageChannelAdapter(@Qualifier("INPUT_CHANNEL") MessageChannel inputChannel,
                                                                    EventHubsMessageListenerContainer listenerContainer) {
            EventHubsInboundChannelAdapter adapter = new EventHubsInboundChannelAdapter(listenerContainer);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    }
    
  • DefaultMessageHandler Beispielcode:

    Legacycode:

    public class Demo {
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL")
        public MessageHandler messageSender(EventHubOperation eventhubOperation) {
            DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully.");
                }
    
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.error("There was an error sending the message.", ex);
                }
            });
            return handler;
        }
    }
    

    Moderner Code:

    public class Demo {
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL")
        public MessageHandler messageSender(EventHubsTemplate eventhubOperation) {
            DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully.");
                }
    
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.error("There was an error sending the message.", ex);
                }
            });
    
            return handler;
        }
    }
    

Von azure-spring-integration-eventhubs bis spring-integration-azure-eventhubs

Dieser Leitfaden soll die Migration zu spring-integration-azure-eventhubs ab Version 2 von azure-spring-integration-eventhubsunterstützen.

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.

API-Änderungen

  • Legen Sie EventHubOperation ab, wobei die abonnierende Funktion in die Klasse EventHubsMessageListenerContainer verschoben wurde und die sendende Funktion in EventHubsTemplateverschoben wurde.
  • Benennen Sie EventHubInboundChannelAdapter in EventHubsInboundChannelAdapter um mit dem Dienst von Azure Event Hubs konsistent zu bleiben.
  • Ändern Sie den Konstruktor von EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) in EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) und EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Ändern Sie CheckpointConfig Instanziierungsstil in den einfachen Konstruktor anstelle des Buildstils.
  • Drop-API EventHubOperation#setCheckpointConfig. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer die Methode EventHubsContainerProperties#setCheckpointConfigaufrufen.
  • Drop-API EventHubOperation#setBatchConsumerConfig. Um die batchaufwendige Konfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer die beiden Methoden EventHubsContainerProperties#getBatch#setMaxSize und EventHubsContainerProperties#getBatch#setMaxWaitTime aufrufen.
  • Ändern Sie für den Modus "Batchverwendung" die nachrichtenkopfzeilennamen, die aus batchierten Nachrichten konvertiert wurden.
    • Ändern Sie den Nachrichtenkopf von azure_eventhub_enqueued_time in azure_eventhubs_batch_converted_enqueued_time.
    • Ändern Sie den Nachrichtenkopf von azure_eventhub_offset in azure_eventhubs_batch_converted_offset.
    • Ändern Sie den Nachrichtenkopf von azure_eventhub_sequence_number in azure_eventhubs_batch_converted_sequence_number.
    • Ändern Sie den Nachrichtenkopf von azure_partition_key in azure_batch_converted_partition_key.
  • Ignorieren Sie beim Veröffentlichen von Nachrichten in Event Hubs alle Nachrichtenkopfzeilen, die aus batchierten Nachrichten konvertiert wurden. Kopfzeilen umfassen:
    • azure_batch_converted_partition_key
    • azure_eventhubs_batch_converted_enqueued_time
    • azure_eventhubs_batch_converted_offset
    • azure_eventhubs_batch_converted_sequence_number
    • azure_eventhubs_batch_converted_system_properties
    • azure_eventhubs_batch_converted_application_properties
  • Der BATCH Prüfpunktmodus funktioniert jetzt nur im Batch-Nutzungsmodus, der aktiviert werden kann, indem ListenerMode.BATCH an den EventHubsInboundChannelAdapter-Konstruktor übergeben wird.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-integration-eventhubs zu spring-integration-azure-eventhubs:

Legacyklasse Moderne Klasse
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.core.EventHubHeaders com.azure.spring.messaging.eventhubs.support.EventHubsHeaders
com.azure.spring.integration.core.api.CheckpointConfig com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointConfig
com.azure.spring.integration.core.api.CheckpointMode com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter

Von azure-spring-cloud-starter-servicebus bis spring-cloud-azure-starter-integration-servicebus

Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-integration-servicebus ab Version 2 von azure-spring-cloud-starter-servicebusunterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
  • Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt Authentifizierungsänderungen.
  • Informationen zum Nutzen von spring-boot-properties-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

SDK-Konfigurationsänderungen

Für alle konfigurationsoptionen, die in spring-cloud-azure-starter-integration-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 ServiceBusQueueOperation und ServiceBusTopicOperation ab, wobei die abonnierende Funktion in die Klasse ServiceBusMessageListenerContainer verschoben wurde und die sendende Funktion in ServiceBusTemplateverschoben wurde.
  • Legen Sie ServiceBusQueueInboundChannelAdapter und ServiceBusTopicInboundChannelAdapterab, 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) in ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) und ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Ändern Sie den Konstruktor von ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) in ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) und ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Drop-APIs ServiceBusQueueOperation#setCheckpointConfig und ServiceBusTopicOperation#setCheckpointConfig. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer stattdessen die Methode ServiceBusContainerProperties#setAutoComplete aufrufen. Um den AutoVervollständigen-Modus zu deaktivieren, entspricht MANUAL Prüfpunktmodus, und um ihn zu aktivieren, wird der RECORD Modus ausgelöst.
  • Drop-APIs ServiceBusQueueOperatio#setClientConfig und ServiceBusTopicOperation#setClientConfig. Um die zugrunde liegende ServiceBusProcessorClient zu konfigurieren, die vom Eingehenden Kanaladapter verwendet wird, können Benutzer stattdessen ServiceBusContainerProperties verwenden.
  • Legen Sie CompletableFuture Unterstützung in ServiceBusTemplate und DefaultMessageHandlerab, unterstützen Sie stattdessen Reactor.
  • Fügen Sie eine neue API von ServiceBusTemplate#setDefaultEntityType hinzu, um den Entitätstyp anzugeben, der erforderlich ist, wenn für die ProducerProperties#entityTypekeine PropertiesSupplier&lt;String, ProducerProperties&gt; bereitgestellt wird.
  • Drop message header AzureHeaders.RAW_ID. Verwenden Sie stattdessen ServiceBusMessageHeaders.MESSAGE_ID.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-starter-servicebus zu spring-cloud-azure-starter-integration-servicebus:

Legacyklasse Moderne Klasse
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter
com.azure.spring.integration.core.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter
com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter

Beispielcodeausschnitt

  • ServiceBusInboundChannelAdapter Beispielcode:

    Legacycode zur Verwendung von ServiceBusQueueInboundChannelAdapter oder ServiceBusTopicInboundChannelAdapter:

    public class Demo {
        @Bean
        public ServiceBusQueueInboundChannelAdapter queueMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL_NAME") MessageChannel inputChannel, ServiceBusQueueOperation queueOperation) {
            queueOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode(CheckpointMode.MANUAL).build());
            ServiceBusQueueInboundChannelAdapter adapter = new ServiceBusQueueInboundChannelAdapter("QUEUE_NAME",
                queueOperation);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    
        @Bean
        public ServiceBusTopicInboundChannelAdapter topicMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL_NAME") MessageChannel inputChannel, ServiceBusTopicOperation topicOperation) {
            topicOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode(CheckpointMode.MANUAL).build());
            ServiceBusTopicInboundChannelAdapter adapter = new ServiceBusTopicInboundChannelAdapter("TOPIC_NAME",
                topicOperation, "SUBSCRIPTION_NAME");
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    
    }
    

    Moderner Code:

    public class Demo {
        @Bean("queue-listener-container")
        public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) {
            ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties();
            containerProperties.setEntityName("QUEUE_NAME");
            containerProperties.setAutoComplete(false);
            return new ServiceBusMessageListenerContainer(processorFactory, containerProperties);
        }
    
        @Bean
        public ServiceBusInboundChannelAdapter queueMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel,
            @Qualifier("queue-listener-container") ServiceBusMessageListenerContainer listenerContainer) {
            ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    
        @Bean("topic-listener-container")
        public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) {
            ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties();
            containerProperties.setEntityName("TOPIC_NAME");
            containerProperties.setSubscriptionName("SUBSCRIPTION_NAME");
            containerProperties.setAutoComplete(false);
            return new ServiceBusMessageListenerContainer(processorFactory, containerProperties);
        }
    
        @Bean
        public ServiceBusInboundChannelAdapter topicMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel,
            @Qualifier("topic-listener-container") ServiceBusMessageListenerContainer listenerContainer) {
            ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    }
    
  • DefaultMessageHandler Beispielcode:

    Legacycode mit Warteschlange als Beispiel:

    public class Demo {
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME")
        public MessageHandler queueMessageSender(ServiceBusQueueOperation queueOperation) {
            DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", queueOperation);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully.");
                }
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.info("There was an error sending the message.");
                }
            });
            return handler;
        }
    }
    

    Moderner Code:

    public class Demo {
    
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME")
        public MessageHandler queueMessageSender(ServiceBusTemplate serviceBusTemplate) {
            serviceBusTemplate.setDefaultEntityType(ServiceBusEntityType.QUEUE);
            DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", serviceBusTemplate);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully for {}.", "QUEUE_NAME");
                }
    
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.info("There was an error sending the message.");
                }
            });
    
            return handler;
        }
    }
    

Vom azure-spring-integration-servicebus zum spring-integration-azure-servicebus

Dieser Leitfaden soll die Migration Spring-integration-azure-servicebus ab Version 2 von azure-spring-integration-servicebusunterstützen.

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.

API-Änderungen

  • Legen Sie ServiceBusQueueOperation und ServiceBusTopicOperation ab, wobei die abonnierende Funktion in die Klasse ServiceBusMessageListenerContainer verschoben wurde und die sendende Funktion in ServiceBusTemplateverschoben wurde.
  • Legen Sie ServiceBusQueueInboundChannelAdapter und ServiceBusTopicInboundChannelAdapterab, 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) in ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) und ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Ändern Sie den Konstruktor von ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) in ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) und ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Drop-APIs ServiceBusQueueOperation#setCheckpointConfig und ServiceBusTopicOperation#setCheckpointConfig. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer stattdessen die Methode ServiceBusContainerProperties#setAutoComplete aufrufen. Um den AutoVervollständigen-Modus zu deaktivieren, entspricht MANUAL Prüfpunktmodus, und um ihn zu aktivieren, wird der RECORD Modus ausgelöst.
  • Drop-APIs ServiceBusQueueOperation#setClientConfig und ServiceBusTopicOperation#setClientConfig. Um die zugrunde liegende ServiceBusProcessorClient zu konfigurieren, die vom Eingehenden Kanaladapter verwendet wird, können Benutzer stattdessen ServiceBusContainerProperties verwenden.
  • Legen Sie CompletableFuture Unterstützung in ServiceBusTemplate und DefaultMessageHandlerab, unterstützen Sie stattdessen Reactor.
  • Fügen Sie eine neue API von ServiceBusTemplate#setDefaultEntityType hinzu, um den Entitätstyp anzugeben, der erforderlich ist, wenn für die ProducerProperties#entityTypekeine PropertiesSupplier&lt;String, ProducerProperties&gt; bereitgestellt wird.
  • Drop message header AzureHeaders.RAW_ID. Verwenden Sie stattdessen ServiceBusMessageHeaders.MESSAGE_ID.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-integration-servicebus zu spring-integration-azure-servicebus:

Legacyklasse Moderne Klasse
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter
com.azure.spring.integration.core.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter
com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter

Von azure-spring-cloud-starter-storage-queue bis spring-cloud-azure-starter-integration-storage-queue

Dieser Leitfaden soll die Migration zur spring-cloud-azure-starter-integration-storage-queue ab Version 2 von azure-spring-cloud-starter-storage-queueunterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
  • Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt Authentifizierungsänderungen.
  • Informationen zum Nutzen von spring-boot-properties-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

SDK-Konfigurationsänderungen

Alle Konfigurationseigenschaftennamen haben das Präfix von spring.cloud.azure.storage in spring.cloud.azure.storage.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 StorageQueueOperation ab, und stellen Sie stattdessen StorageQueueTemplate bereit.
  • Legen Sie checkpoint-mode Konfiguration in StorageQueueTemplateab, unterstützen sie nur den MANUAL Modus.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-starter-storage-queue zu spring-cloud-azure-starter-integration-storage-queue.

Legacyklasse Moderne Klasse
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.storage.queue.StorageQueueTemplate com.azure.spring.storage.queue.core.StorageQueueTemplate
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource

Von azure-spring-integration-storage-queue bis spring-integration-azure-storage-queue

Dieser Leitfaden soll die Migration zu Spring-integration-azure-storage-queue- ab Version 2 von azure-spring-integration-storage-queue-unterstützen.

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.

API-Änderungen

  • Legen Sie StorageQueueOperation ab, und stellen Sie stattdessen StorageQueueTemplate bereit.
  • Legen Sie checkpoint-mode Konfiguration in StorageQueueTemplateab, unterstützen sie nur den MANUAL Modus.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-integration-storage-queue zu spring-integration-azure-storage-queue.

Legacyklasse Moderne Klasse
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.storage.queue.StorageQueueTemplate com.azure.spring.storage.queue.core.StorageQueueTemplate
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource

Von azure-spring-cloud-stream-binder-eventhubs bis spring-cloud-azure-stream-binder-eventhubs

Dieser Leitfaden soll die Migration zu spring-cloud-azure-stream-binder-eventhubs ab Version 2 von azure-spring-cloud-stream-binder-eventhubsunterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
  • Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt Authentifizierungsänderungen.
  • Informationen zum Nutzen von spring-boot-properties-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

SDK-Konfigurationsänderungen

Wichtig

Das Konfigurationspräfix wurde von spring.cloud.azure.eventhub in spring.cloud.azure.eventhubs. geändert.

Wichtig

Der Ordnertyp wird umbenannt von: eventhub in eventhubs.

Änderungen an den untergeordneten Einträgen für das folgende Präfix finden Sie in der folgenden Tabelle.

Die folgende Tabelle zeigt Eigenschaftenzuordnungen von azure-spring-cloud-stream-binder-eventhubs zu spring-cloud-azure-stream-binder-eventhubs:

Legacyeigenschaften Moderne Eigenschaften
spring.cloud.azure.resource-group spring.cloud.azure.eventhubs.resource.resource-group
spring.cloud.azure.eventhub.namespace spring.cloud.azure.eventhubs.namespace
spring.cloud.azure.eventhub.connection-string spring.cloud.azure.eventhubs.connection-string
spring.cloud.azure.eventhub.checkpoint-storage-account spring.cloud.azure.eventhubs.processor.checkpoint-store.account-name
spring.cloud.azure.eventhub.checkpoint-access-key spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key
spring.cloud.azure.eventhub.checkpoint-container spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-batch-size spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-size
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-wait-time spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-wait-time
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-mode spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.mode
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-count spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.count
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-interval spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.interval
spring.cloud.stream.eventhub.bindings.binding-name.consumer.start-position spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position

Anmerkung

Der Werttyp der start-position-Konfiguration wird auch von einer Enumeration von com.azure.spring.integration.core.api.StartPosition in eine map von StartPositionProperties für jede Partition geändert. Daher ist der Schlüssel die Partitions-ID, und der Wert ist von com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties, die Eigenschaften von Offset, Sequenznummer, enqueuierte Datumszeit und ob einschließlich enthält.

Beispiele für die Konfigurationsmigration

Um die Verbindungszeichenfolge für die Authentifizierung zu verwenden und die oben genannten Eigenschaften zu migrieren, werden Konfigurationsänderungen wie folgt aufgeführt:

Legacykonfiguration:

spring:
  cloud:
    azure:
      eventhub:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        checkpoint-storage-account: ${AZURE_CHECKPOINT_STORAGE_ACCOUNT_NAME}
        checkpoint-access-key: ${AZURE_CHECKPOINT_ACCOUNT_KEY}
        checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER_NAME}
    stream:
      eventhub:
        bindings:
          <binding-name>:
            consumer:
              max-batch-size: ${AZURE_MAX_BATCH_SIZE}
              max-wait-time: ${AZURE_MAX_WAIT_TIME}
              checkpoint-mode: ${AZURE_CHECKPOINT_MODE}
              checkpoint-count: ${AZURE_CHECKPOINT_COUNT}
              checkpoint-interval: ${AZURE_CHECKPOINT_INTERVAL}
              start-position: EARLIEST

Moderne Konfiguration:

spring:
  cloud:
    azure:
      eventhubs:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        processor:
          checkpoint-store:
            container-name: ${AZURE_STORAGE_CONTAINER_NAME}
            account-name:  ${AZURE_STORAGE_ACCOUNT_NAME}
            account-key: ${AZURE_STORAGE_ACCOUNT_KEY}
    stream:
      eventhubs:
        bindings:
          <binding-name>:
            consumer:
              batch:
                max-size: ${AZURE_MAX_BATCH_SIZE}
                max-wait-time: ${AZURE_MAX_WAIT_TIME}
              checkpoint:
                mode: ${AZURE_CHECKPOINT_MODE}
                count: ${AZURE_CHECKPOINT_COUNT}
                interval: ${AZURE_CHECKPOINT_INTERVAL}
              initial-partition-event-position:
                0:
                  offset: earliest
                1:
                  sequence-number: 100
                2:
                  enqueued-date-time: 2022-01-12T13:32:47.650005Z
                4:
                  inclusive: false

Wenn Sie Sicherheitsprinzipale anstelle von Verbindungszeichenfolgen verwenden, stellt die Anwendung in Versionen vor 4.0 zuerst eine Verbindung mit Azure Resource Manager (ARM) mit dem bereitgestellten Sicherheitsprinzipal her und ruft dann die Verbindungszeichenfolge des angegebenen Namespaces mit ARM ab. Am Ende verwendet die Anwendung die abgerufene Verbindungszeichenfolge, um eine Verbindung mit Azure Event Hubs herzustellen. Auf diese Weise sollte der bereitgestellte Sicherheitsprinzipal mit dem Mitwirkenden Rolle erteilt werden, um den zugeordneten Azure Event Hubs-Namespace abzurufen.

Für Azure Spring Apps 4.0 bieten wir zwei Möglichkeiten, Sicherheitsprinzipale für die Authentifizierung zu nutzen. Eine verwendet weiterhin die Prinzipale, um eine Verbindung mit ARM herzustellen und die Verbindungszeichenfolgen abzurufen, in denen die Contributor Rolle für die Prinzipale erforderlich ist. Die andere nutzt Sicherheitsprinzipale, um sich bei Microsoft Entra-ID zu authentifizieren und dann eine direkte Verbindung mit Azure Event Hubs herzustellen. In diesem Fall ist die Contributor Rolle nicht mehr erforderlich, während andere Data verwandte Rollen für Messagingvorgänge erforderlich sind. Um sicherzustellen, dass dem Sicherheitsprinzipal die ausreichende Berechtigung für den Zugriff auf die Azure-Ressource gewährt wurde, lesen Sie Autorisieren des Zugriffs mit microsoft Entra ID.

Für die Authentifizierung basierend auf ARM wird der Dienstprinzipal wie folgt aufgeführt, bei der die zugewiesene Rolle nicht geändert werden sollte:

Legacykonfiguration:

spring:
  cloud:
    azure:
      client-id: ${AZURE_CLIENT_ID}
      client-secret: ${AZURE_CLIENT_SECRET}
      tenant-id: <tenant>
      resource-group: ${EVENTHUB_RESOURCE_GROUP}
      eventhub:
        namespace: ${EVENTHUB_NAMESPACE}

Anmerkung

Die für tenant-id zulässigen Werte sind: common, organizations, consumersoder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt Abschnitt Abschnitt Fehler-AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandantenvorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.

Moderne Konfiguration, Eigenschaften für Azure-Abonnement-ID und Ressourcengruppe sind erforderlich:

spring:
  cloud:
    azure:
      credential:
        client-id: ${AZURE_CLIENT_ID}
        client-secret: ${AZURE_CLIENT_SECRET}
      profile:
        tenant-id: <tenant>
        subscription-id: ${AZURE_SUBSCRIPTION_ID}
      eventhubs:
        namespace: ${EVENTHUB_NAMESPACE}
        resource:
          resource-group: ${RESOURCE_GROUP}

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 Abschnitt Abschnitt Fehler-AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandantenvorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.

Sie können auch zur Authentifizierung und Autorisierung mit microsoft Entra ID direkt migrieren, ohne einen Umweg zu ARM zu machen. Stellen Sie sicher, dass Sie dem Sicherheitsprinzipal 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 Abschnitt Abschnitt Fehler-AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandantenvorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.

  • Mit einer verwalteten Identität

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
            client-id: ${AZURE_MANAGED_IDENTITY_CLIENT_ID} # Only needed when using a user-assigned managed identity
          eventhubs:
            namespace: ${EVENTHUB_NAMESPACE}
    

API-Änderungen

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-stream-binder-eventhubs zu spring-cloud-azure-stream-binder-eventhubs.

Legacyklasse Moderne Klasse
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.core.EventHubHeaders com.azure.spring.messaging.eventhubs.support.EventHubsHeaders

Von azure-spring-cloud-stream-binder-servicebus-* bis spring-cloud-azure-stream-binder-servicebus

Dieses Handbuch soll die Migration spring-cloud-azure-stream-binder-servicebus ab Version 2 von azure-spring-cloud-stream-binder-servicebus-queue oder azure-spring-cloud-stream-binder-servicebus-topicunterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

  • Eine Übersicht über die Änderungen in 4.0 finden Sie in den Abschnitten Einführung und Migrationsvorteile Abschnitten.
  • Weitere Informationen zu den Strategieänderungen bei der Projektbenennung finden Sie im Abschnitt Namensänderungen Abschnitt.
  • Informationen zum Verwenden einer BOM für alle Spring Cloud Azure-Bibliotheken finden Sie im Abschnitt BOM-.
  • Informationen zum Behandeln der Authentifizierung in Spring Cloud Azure 4.0 finden Sie im Abschnitt Authentifizierungsänderungen.
  • Informationen zum Nutzen von spring-boot-properties-migrator während der Migration finden Sie im Abschnitt Konfigurieren der einzelnen SDK-.
  • Weitere Informationen zu den globalen und allgemeinen Konfigurationsänderungen finden Sie im Abschnitt globalen Konfigurationen.

SDK-Konfigurationsänderungen

Wichtig

Legacy-Ordnerbibliotheken sind azure-spring-cloud-stream-binder-servicebus-queue und azure-spring-cloud-stream-binder-servicebus-topic, und jetzt werden sie in einem spring-cloud-azure-stream-binder-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

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 Abschnitt Abschnitt Fehler-AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandantenvorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.

Moderne Konfiguration, Eigenschaften für Azure-Abonnement-ID und Ressourcengruppe sind erforderlich:

spring:
  cloud:
    azure:
      credential:
        client-id: ${AZURE_CLIENT_ID}
        client-secret: ${AZURE_CLIENT_SECRET}
      profile:
        tenant-id: <tenant>
        subscription-id: ${AZURE_SUBSCRIPTION_ID}
      servicebus:
        namespace: ${SERVICEBUS_NAMESPACE}
        resource:
          resource-group: ${SERVICEBUS_RESOURCE_GROUP}

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 Abschnitt Abschnitt Fehler-AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandantenvorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.

Sie können auch zur Authentifizierung und Autorisierung mit microsoft Entra ID direkt migrieren, ohne einen Umweg zu ARM zu machen. Stellen Sie sicher, dass Sie dem Sicherheitsprinzipal 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 Abschnitt Abschnitt Fehler-AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandantenvorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.

  • Mit einer verwalteten Identität

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
            client-id: ${AZURE_MANAGED_IDENTITY_CLIENT_ID} # Only needed when using a user-assigned   managed identity
          servicebus:
            namespace: ${SERVICEBUS_NAMESPACE}
    

API-Änderungen

  • Drop message header AzureHeaders.RAW_ID. Verwenden Sie stattdessen ServiceBusMessageHeaders.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.