Průvodce migrací pro Spring Cloud Azure 4.0

Tato příručka vám pomůže s migrací na Spring Cloud Azure 4.0 ze starších knihoven Azure Spring.

Úvod

Budeme volat knihovny, jejichž ID skupiny a ID artefaktu se řídí vzorem com.azure.spring:spring-cloud-azure-*moderní knihovny a knihovny se vzorem com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-*nebo com.azure.spring:azure-spring-integration-*starších knihoven.

Tato příručka se zaměří na souběžná porovnání podobných konfigurací mezi moderními a staršími knihovnami.

Předpokládá se znalost com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-* nebo balíčku com.azure.spring:azure-spring-integration-*.

Pokud s knihovnami Spring Cloud Azure 4.0 začínáte, podívejte se na příručku pro vývojáře Spring Cloud Azure než tuto příručku.

Výhody migrace

Při zvažování, jestli chcete přijmout novou verzi nebo knihovnu, je její výhoda přirozeným otazníkem. Vzhledem k tomu, že Azure zrala a přijala různorodější skupina vývojářů, zaměřili jsme se na učení vzorů a postupů, abychom co nejlépe podporovali produktivitu vývojářů a pochopili mezery, které mají knihovny Spring Cloud Azure.

V knihovnách spring cloudových Azure bylo vyjádřeno několik oblastí konzistentní zpětné vazby. Nejdůležitější je, že knihovny pro různé Azure služby nepovolily úplnou sadu konfigurací. Kromě toho nekonzistence pojmenování projektu, ID artefaktů, verzí a konfigurací udělala křivku učení strmou.

Za účelem zlepšení vývojového prostředí v knihovnách Azure Spring Cloudu byla zavedena sada pokynů pro návrh, které zajistí, aby knihovny Spring Cloud Azure měly přirozený a idiomatické pocity s ohledem na ekosystém Spring. Další podrobnosti najdete v dokumentu design pro zájemce.

Spring Cloud Azure 4.0 poskytuje sdílené prostředí napříč knihovnami integrujícími s různými projekty Spring, například Spring Boot, Spring Integration, Spring Cloud Stream atd. Sdílené prostředí zahrnuje:

  • Sjednocená bom, která zahrnuje všechny knihovny Spring Cloud Azure 4.0.
  • Konzistentní konvence vytváření názvů pro artefakty
  • Jednotný způsob konfigurace přihlašovacích údajů, proxy serveru, opakování, cloudového prostředí a nastavení přenosové vrstvy
  • Podpora všech metod ověřování, které Azure Služba nebo Azure Service SDK podporuje.

Přehled

Tento průvodce migrací se skládá z následujících částí:

  • Změny názvů pro Spring Cloud Azure 4.0
  • Změny artefaktů: přejmenováno / přidáno / odstraněno
  • Změny závislostí
  • Změny ověřování
  • Vlastnosti konfigurace
  • Zásadní změny rozhraní API
  • Změny knihovny

Změny pojmenování

Nikdy nebylo konzistentní ani oficiální jméno pro volání všech knihoven spring cloudových Azure. Některé z nich byly volány Azure Spring Boot a některé z nich Spring on Azure. Od verze 4.0 jsme začali používat název projektu Spring Cloud Azure k reprezentaci všech knihoven Azure Spring.

KUSOVNÍK

Použili jsme k odeslání dvou kusovníků pro naše knihovny, azure-spring-boot-bom a azure-spring-cloud-dependencies, ale tyto dvě kusovníky jsme zkombinovali do jednoho kusovníku od 4,0, spring-cloud-azure-dependencies. Přidejte do dependencyManagement části projektu položku, která bude těžit ze správy závislostí.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-dependencies</artifactId>
      <version>7.3.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Poznámka

Pokud používáte Spring Boot 4.0.x, nezapomeňte nastavit spring-cloud-azure-dependencies verzi na 7.3.0.

Pokud používáte Spring Boot 3.5.x, nezapomeňte nastavit spring-cloud-azure-dependencies verzi na 6.4.0hodnotu.

Pokud používáte Spring Boot 3.1.x-3.5.x, nezapomeňte nastavit spring-cloud-azure-dependencies verzi na 5.25.0hodnotu .

Pokud používáte Spring Boot 2.x, nezapomeňte nastavit spring-cloud-azure-dependencies verzi na 4.20.0.

Tato faktura materiálu (BOM) by měla být nakonfigurována v <dependencyManagement> části vašeho pom.xml souboru. Tím zajistíte, že všechny závislosti Spring Cloud Azure budou používat stejnou verzi.

Další informace o verzi použité pro tento kusovník najdete v tématu Která verze Spring Cloudu Azure Měla bych použít.

Změny artefaktů: přejmenováno / přidáno / odstraněno

ID skupin jsou stejná pro moderní a starší knihovny Spring Cloud Azure. Všichni jsou com.azure.spring. ID artefaktů pro moderní knihovny Azure Spring Cloudu se změnila. Podle toho, do jakého projektu Spring patří, spring boot, integrace Springu nebo Spring Cloud Streamu, může být vzor ID artefaktů spring-cloud-azure-starter-[service], spring-integration-azure-[service]nebo spring-cloud-azure-stream-binder-[service]. Starší počáteční verze pro každou z nich mají ID artefaktu podle vzoru azure-spring-*. To poskytuje rychlé a přístupné prostředky, které vám pomůžou pochopit, ať už používáte moderní nebo starší úvodní sady.

V procesu vývoje Spring Cloudu Azure 4.0 jsme některé artefakty přejmenovali, aby se dodržovaly nové zásady vytváření názvů, odstranili některé artefakty, aby se funkce mohly vložit do vhodnějšího artefaktu a přidali některé nové artefakty, aby lépe sloužily některým scénářům.

Následující tabulka ukazuje mapování mezi starším ID artefaktu a moderním ID artefaktu:

ID starší verze artefaktu ID moderního artefaktu Popis
azure-spring-boot-starter spring-cloud-azure-starter Tento artefakt byl odstraněn se všemi funkcemi, které se sloučí do nového artefaktu spring-cloud-azure-starter.
azure-spring-boot-starter-active-directory spring-cloud-azure-starter-active-directory Přejmenoval artefakt.
azure-spring-boot-starter-active-directory-b2c spring-cloud-azure-starter-active-directory-b2c Přejmenoval artefakt.
azure-spring-boot-starter-cosmos spring-cloud-azure-starter-data-cosmos Přejmenoval artefakt tak, aby přidal data označující použití Azure Cosmos DB Spring Data.
azure-spring-boot-starter-keyvault-certificates nejde použít Tato verze není zahrnutá, ale bude podporována v novější verzi.
azure-spring-boot-starter-keyvault-secrets spring-cloud-azure-starter-keyvault-secrets Přejmenoval artefakt.
azure-spring-boot-starter-servicebus-jms spring-cloud-azure-starter-servicebus-jms Přejmenoval artefakt.
azure-spring-boot-starter-storage spring-cloud-azure-starter-storage-blob
spring-cloud-azure-starter-storage-file-share
Starší artefakt obsahuje funkce objektu blob úložiště i sdílené složky, které byly duplikovány do dvou samostatných artefaktů ve verzi 4.0 spring-cloud-azure-starter-storage-blob a spring-cloud-azure-starter-storage-file-share.
azure-spring-boot nejde použít Tento artefakt byl odstraněn se všemi funkcemi, které se sloučí do nového artefaktu spring-cloud-azure-autoconfigure.
azure-spring-cloud-autoconfigure nejde použít Tento artefakt byl odstraněn se všemi funkcemi, které se sloučí do nového artefaktu spring-cloud-azure-autoconfigure.
azure-spring-cloud-context nejde použít Tento artefakt byl odstraněn se všemi funkcemi, které se sloučí do nových spring-cloud-azure-autoconfigure a spring-cloud-azure-resourcemanager artefaktů.
azure-spring-cloud-messaging spring-messaging-azure Poznámka k naslouchacímu procesu zasílání zpráv byla ukončena.
azure-spring-cloud-starter-cache nejde použít Tento artefakt byl odstraněn, pro použití redis, stačí přidat spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager, a spring-cloud-azure-starter. Další informace o využití najdete v tématu podpory Spring Cloud Azure Redis.
azure-spring-cloud-starter-eventhubs-kafka nejde použít Tento artefakt byl odstraněn pro použití kafka, stačí přidat spring kafka, spring-cloud-azure-resourcemanagera spring-cloud-azure-starter. Další informace o využití najdete v tématu podpora Spring Cloud Azure Kafka.
azure-spring-cloud-starter-eventhubs spring-cloud-azure-starter-integration-eventhubs Přejmenoval artefakt pro přidání integration, který označuje použití integrace Spring se službou Event Hubs.
azure-spring-cloud-starter-servicebus spring-cloud-azure-starter-integration-servicebus Přejmenoval artefakt tak, aby přidal integration označující použití integrace Spring s Service Bus.
azure-spring-cloud-starter-storage-queue spring-cloud-azure-starter-integration-storage-queue Přejmenoval artefakt tak, aby přidal integration, který označuje použití integrace Spring s frontou úložiště.
azure-spring-cloud-storage nejde použít Tento artefakt byl odstraněn se všemi funkcemi sloučenými do nového artefaktu spring-cloud-azure-autoconfigure.
azure-spring-cloud-stream-binder-eventhubs spring-cloud-azure-stream-binder-eventhubs Tento artefakt byl refaktorován pomocí nového návrhu, zejména spring-cloud-azure-stream-binder-eventhubs a spring-cloud-azure-stream-binder-eventhubs-core.
azure-spring-cloud-stream-binder-service-core spring-cloud-azure-stream-binder-servicebus-core Přejmenoval artefakt.
azure-spring-cloud-stream-binder-servicebus-queue spring-cloud-azure-stream-binder-servicebus Tento artefakt byl odstraněn se všemi funkcemi, které se sloučí do artefaktu spring-cloud-azure-stream-binder-servicebus.
azure-spring-cloud-stream-binder-servicebus-topic spring-cloud-azure-stream-binder-servicebus Tento artefakt byl odstraněn se všemi funkcemi, které se sloučí do artefaktu spring-cloud-azure-stream-binder-servicebus.
azure-spring-integration-core spring-integration-azure-core Přejmenoval artefakt.
azure-spring-integration-eventhubs spring-integration-azure-eventhubs Přejmenujte artefakt.
azure-spring-integration-servicebus spring-integration-azure-servicebus Přejmenujte artefakt.
azure-spring-integration-storage-queue spring-integration-azure-storage-queue Přejmenujte artefakt.
nejde použít spring-cloud-azure-actuator Nově přidaný artefakt ovladače Spring Cloud Azure.
nejde použít spring-cloud-azure-actuator-autoconfigure Nově přidaný artefakt AutoConfigure ovladače Spring Cloud Azure, včetně automatické konfigurace pro poháněcího zařízení.
nejde použít spring-cloud-azure-autoconfigure Nově přidaný artefakt Spring Cloud Azure AutoConfigure, včetně veškeré automatické konfigurace pro klienty sady SDK, podpory Spring Security, podpory Spring Data a podpory integrace Spring.
nejde použít spring-cloud-azure-core Nově přidaný artefakt Spring Cloud Azure Core, včetně všech základních funkcí.
nejde použít spring-cloud-azure-resourcemanager Nově přidaný artefakt Resource Manager Je to základní knihovna, která používá Azure Resource Manager ke čtení metadat a vytváření prostředků.
nejde použít spring-cloud-azure-service Nově přidaný artefakt služby Spring Cloud Azure Service, včetně abstrakcí pro služby Azure
nejde použít spring-cloud-azure-starter-appconfiguration Nově přidaná úvodní sada pro použití klienta sady Azure App Configuration SDK
nejde použít spring-cloud-azure-starter-cosmos Nově přidaná úvodní sada pro použití klienta sady Azure Cosmos DB SDK
nejde použít spring-cloud-azure-starter-eventhubs Nově přidaná úvodní sada pro použití klienta sady Azure Event Hubs SDK
nejde použít spring-cloud-azure-starter-servicebus Nově přidaná úvodní sada pro použití klienta sady Azure Service Bus SDK
nejde použít spring-cloud-azure-starter-storage-blob Nově přidaný začátek pro použití klienta sady Azure Storage Blob SDK
nejde použít spring-cloud-azure-starter-storage-file-share Nově přidaná úvodní sada pro použití klienta sady AZURE STORAGE File Share SDK.
nejde použít spring-cloud-azure-starter-storage-queue Nově přidaná úvodní sada pro použití klienta sady Azure Storage Queue SDK
nejde použít spring-cloud-azure-starter-stream-eventhubs Nově přidaný začátek pro použití Azure Event Hubs Spring Cloud Stream Binder.
nejde použít spring-cloud-azure-starter-stream-servicebus Nově přidaná úvodní sada pro použití Azure Service Bus Spring Cloud Stream Binderu
nejde použít spring-cloud-azure-stream-binder-eventhubs-core Nově přidaný základní artefakt Spring Cloud Stream pro Azure Event Hubs

Změny závislostí

Některé nepotřebné závislosti byly zahrnuty do starších artefaktů, které jsme odebrali v moderních knihovnách Spring Cloud Azure 4.0. Nezapomeňte do projektu přidat odebrané závislosti ručně, abyste zabránili chybám.

Mezi knihovny, které mají změny závislostí, patří:

Změny ověřování

Spring Cloud Azure 4.0 podporuje všechny metody ověřování, které podporuje každá sada SDK služby Azure. Umožňuje nakonfigurovat přihlašovací údaje globálního tokenu a zadat přihlašovací údaje tokenu na každé úrovni služby. Přihlašovací údaje ale nejsou potřeba ke konfiguraci Spring Cloudu Azure 4.0, protože můžou použít přihlašovací údaje uložené v místním vývojovém prostředí nebo spravované identitě ve službě Azure Services. Ujistěte se, že objekt zabezpečení má dostatečná oprávnění pro přístup k cílovému Azure prostředků.

Poznámka

Při přiřazování rolí k objektům zabezpečení pro interakci se službami zasílání zpráv Azure jsou k provádění operací zasílání zpráv potřeba Data související role. Pro knihovny služby Azure Spring Apps Stream Event Hubs / Service Bus Binder je vyžadována role Contributor v případě potřeby funkce automatického vytváření prostředků. Další informace najdete v tématu Azure předdefinované role.

Zřetězený přihlašovací údaje, DefaultAzureCredential bean je ve výchozím nastavení automaticky nakonfigurovaný a budou je používat všechny komponenty, pokud nejsou zadány žádné další ověřovací informace. Další informace najdete v části DefaultAzureCredential klientské knihovny Azure Identita pro Java.

Vlastnosti konfigurace

Migrace vlastností

Vytvořili additional-spring-configuration-metadata.json jsme soubor pro vyhlazení migrace vlastností při použití s spring-boot-properties-migrator. Nejprve do aplikace přidejte následující migraci vlastností:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-properties-migrator</artifactId>
    <scope>runtime</scope>
</dependency>

Nebo pokud používáte Gradle:

runtime("org.springframework.boot:spring-boot-properties-migrator")

Pokud aplikaci spustíte, identifikuje vlastnosti, které už Azure Spring Cloud nespravuje. Pokud dojde k nahrazení, vlastnost se dočasně znovu namapuje s upozorněním. Pokud nedojde k nahrazení, zobrazí se další informace zpráva o chybě. V obou směrech se konfigurace musí aktualizovat a po aktualizaci konfigurace se závislost odebere.

Než budete pokračovat, je vhodné použít funkci vyhledávání integrovaného vývojového prostředí (IDE) a pečlivě zkontrolovat, že nepoužíváte některou z vlastností, které jste migrovali v integračním testu.

Poznámka

V této změně jsme změnili mnoho vlastností konfigurace. S využitím spring-boot-properties-migrator pomůžete s hladkým průběhem migrace.

Globální konfigurace

Moderní spring-cloud-azure-starter umožňuje definovat vlastnosti, které se vztahují na všechny Sady Azure SDK v oboru názvů spring.cloud.azure. Tato funkce nebyla podporována ve starší verzi azure-spring-boot-starter. Globální konfigurace je možné rozdělit do pěti kategorií, jak je znázorněno v následující tabulce:

Předpona Popis
spring.cloud.azure.client Konfiguruje přenosové klienty pod jednotlivými Azure SDK.
spring.cloud.azure.credential Konfiguruje způsob ověřování pomocí Microsoft Entra ID.
spring.cloud.azure.profile Konfiguruje cloudové prostředí Azure.
spring.cloud.azure.proxy Nakonfiguruje možnosti proxy serveru, platí pro všechny klienty Azure SDK.
spring.cloud.azure.retry Nakonfiguruje možnosti opakování, platí pro všechny klienty Azure SDK. Možnosti opakování podporují část sad SDK, neexistuje žádná spring.cloud.azure.cosmos.retry.

Úplný seznam konfigurací najdete v tématu Spring Cloud Azure vlastnosti konfigurace.

Konfigurace jednotlivých sad SDK

Podrobnosti o možnostech konfigurace na úrovni sady SDK najdete na následujících odkazech:

Zásadní změny rozhraní API

Podrobnostioch

Změny knihovny

Zásadní změny v každé knihovně se zavádějí následujícím způsobem.

Od azure-spring-boot-starter do spring-cloud-azure-starter

Tento průvodce má pomoct s migrací z spring-cloud-azure-starter verze 3 .azure-spring-boot-starter

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny závislostí

Některé nepotřebné závislosti byly zahrnuty do starších artefaktů, které jsme odebrali v moderních knihovnách Spring Cloud Azure 4.0. Nezapomeňte do projektu přidat odebrané závislosti ručně, abyste zabránili neúmyslnému chybovému ukončení.

Následující tabulka ukazuje odebrané závislosti:

Odebrané závislosti Popis
org.springframework.boot:spring-boot-starter-validation Pokud chcete použít validátor Hibernate, zahrňte počáteční ověření.

Od azure-spring-boot-starter-active-directory do spring-cloud-azure-starter-active-directory

Tento průvodce má pomoct s migrací z spring-cloud-azure-starter-active-directory verze 3 verze azure-spring-boot-starter-active-directory.

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny závislostí

Některé zbytečné závislosti ve starší verzi artefaktu byly odebrány od moderní knihovny Spring Cloud Azure 4.0. Přidejte tyto odebrané závislosti do projektu, abyste zabránili neúmyslnému chybovému ukončení.

Následující tabulka ukazuje odebrané závislosti:

Odebrané závislosti Popis
com.fasterxml.jackson.core:jackson-databind V případě potřeby přidejte tuto závislost do projektu.
io.projectreactor.netty:reactor-netty V případě potřeby přidejte tuto závislost do projektu.
org.springframework.boot:spring-boot-starter-validation V případě potřeby přidejte tuto závislost do projektu.
org.springframework.boot:spring-boot-starter-webflux V případě potřeby přidejte tuto závislost do projektu.

Změny konfigurace sady SDK

Tato část obsahuje změny o přidaných, odebraných a změněných vlastnostech.

  • Následující dva body jsou hlavním cílem věnovat pozornost:
  1. Předpona všech názvů vlastností konfigurace se změnila z azure.activedirectory na spring.cloud.azure.active-directory.
  2. Přidá se nová vlastnost spring.cloud.azure.active-directory.enabled pro povolení nebo zakázání Microsoft Entra souvisejících funkcí. Výchozí hodnota je false.

Následující tabulka uvádí mapování vlastností mezi azure-spring-boot-starter-active-directory a spring-cloud-azure-starter-active-directory:

Starší verze vlastností Moderní vlastnosti
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 Další informace najdete v následující tabulce.
azure.activedirectory.jwt-connect-timeout spring.cloud.azure.active-directory.jwt-connect-timeout
azure.activedirectory.jwt-read-timeout spring.cloud.azure.active-directory.jwt-read-timeout
azure.activedirectory.jwt-size-limit spring.cloud.azure.active-directory.jwt-size-limit
azure.activedirectory.jwk-set-cache-lifespan spring.cloud.azure.active-directory.jwk-set-cache-lifespan
azure.activedirectory.jwk-set-cache-refresh-time spring.cloud.azure.active-directory.jwk-set-cache-refresh-time
azure.activedirectory.post-logout-redirect-uri spring.cloud.azure.active-directory.post-logout-redirect-uri
azure.activedirectory.session-stateless spring.cloud.azure.active-directory.session-stateless
azure.activedirectory.redirect-uri-template spring.cloud.azure.active-directory.redirect-uri-template
azure.activedirectory.resource-server.claim-to-authority-prefix-map spring.cloud.azure.active-directory.resource-server.claim-to-authority-prefix-map
azure.activedirectory.resource-server.principal-claim-name spring.cloud.azure.active-directory.resource-server.principal-claim-name
azure.activedirectory.tenant-id spring.cloud.azure.active-directory.profile.tenant-id
azure.activedirectory.user-group.allowed-group-ids spring.cloud.azure.active-directory.user-group.allowed-group-ids
azure.activedirectory.user-group.allowed-group-names spring.cloud.azure.active-directory.user-group.allowed-group-names
azure.activedirectory.user-name-attribute spring.cloud.azure.active-directory.user-name-attribute
  • Typ hodnoty následujících vlastností se změní z long na Duration:

    • jwt-connect-timeout
    • jwt-read-timeout
    • jwk-set-cache-lifespan
    • jwk-set-cache-refresh-time.
  • Odeberou se následující vlastnosti:

    • azure.activedirectory.allow-telemetry
    • azure.activedirectory.user-group.enable-full-list
    • azure.activedirectory.graph-base-uri
    • azure.activedirectory.graph-membership-uri
  • Přidají se následující vlastnosti:

    • 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

Poznámka

Funkce azure.activedirectory.graph-membership-uri byla nahrazena 2 vlastnostmi: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint a spring.cloud.azure.active-directory.user-group.use-transitive-members. První vlastnost slouží k zadání názvu hostitele a druhý příznak pro použití cesty URL: v1.0/me/memberOf nebo v1.0/me/transitiveMemberOf.

Tady je několik příkladů migrace:

  • Příklad 1. Případ 1

    • Starší verze: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf

    • 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

  • Příklad 2. Případ 2

    • Starší verze: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf

    • 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

Změny rozhraní API

Následující tabulka ukazuje mapování tříd z azure-spring-boot-starter-active-directory na spring-cloud-azure-starter-active-directory:

Starší třída Moderní třída
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

Tato část obsahuje seznam odebraných tříd z azure-spring-boot-starter-active-directory.

  • Odebrání starší třídy

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

Od azure-spring-boot-starter-active-directory-b2c do spring-cloud-azure-starter-active-directory-b2c

Tento průvodce má pomoct s migrací z spring-cloud-azure-starter-active-directory-b2c verze 3 .azure-spring-boot-starter-active-directory-b2c

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny závislostí

Některé nepotřebné závislosti byly zahrnuty do starších artefaktů, které jsme odebrali v moderních knihovnách Spring Cloud Azure 4.0. Nezapomeňte do projektu přidat odebrané závislosti ručně, abyste zabránili neúmyslnému chybovému ukončení.

Následující tabulka ukazuje odebrané závislosti:

Odebrané závislosti Popis
org.springframework.boot:spring-boot-starter-validation Pokud chcete použít validátor Hibernate, zahrňte počáteční ověření.

Změny konfigurace sady SDK

Tato část obsahuje změny o přidaných, odebraných a změněných vlastnostech.

  • Následující dva body jsou hlavním cílem věnovat pozornost:
  1. Všechny názvy vlastností konfigurace změnily předponu z azure.activedirectory.b2c na spring.cloud.azure.active-directory.b2c.
  2. Přidá se nová vlastnost spring.cloud.azure.active-directory.b2c.enabled pro povolení nebo zakázání Azure souvisejících funkcí AD B2C. Výchozí hodnota je false.

Následující tabulka ukazuje mapování vlastností z azure-spring-boot-starter-active-directory-b2c na spring-cloud-azure-starter-active-directory-b2c:

Starší verze vlastností Moderní vlastnosti
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
  • Odebrané vlastnosti z azure-spring-boot-starter-active-directory-b2c:

    • azure.activedirectory.b2c.allow-telemetry
    • azure.activedirectory.b2c.tenant
  • Typ hodnoty následujících vlastností se změní z long na Duration:

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

Změny rozhraní API

Následující tabulka ukazuje mapování tříd z azure-spring-boot-starter-active-directory-b2c na spring-cloud-azure-starter-active-directory-b2c:

Starší třída Moderní třída
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

Od azure-spring-boot-starter-cosmos do spring-cloud-azure-starter-data-cosmos

Tento průvodce má pomoct s migrací z spring-cloud-azure-starter-data-cosmos verze 3 .azure-spring-boot-starter-cosmos

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny konfigurace sady SDK

Všechny názvy vlastností konfigurace změnily předponu z azure.cosmos na spring.cloud.azure.cosmos.

Následující tabulka ukazuje mapování tříd z azure-spring-boot-starter-cosmos na spring-cloud-azure-starter-data-cosmos:

Starší verze vlastností Moderní vlastnosti
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

Od azure-spring-boot-starter-keyvault-secrets do spring-cloud-azure-starter-keyvault-secrets

Tento průvodce má pomoct s migrací z spring-cloud-azure-starter-keyvault-secrets verze 3 .azure-spring-boot-starter-keyvault-secrets

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny konfigurace sady SDK

Tato část obsahuje změny o přidaných, odebraných a změněných vlastnostech.

Následující tabulka ukazuje mapování vlastností z azure-spring-boot-starter-keyvault-secrets na spring-cloud-azure-starter-keyvault-secrets:

Starší verze vlastností Moderní vlastnosti
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 a spring.cloud.azure.keyvault.secret.property-source-enabled
azure.keyvault.order Už se nepodporuje. Místo toho použijte pořadí 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
  • Odebrané vlastnosti z spring-cloud-azure-starter-keyvault-secrets:

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

Na tyto body byste měli věnovat pozornost:

  1. Všechny názvy vlastností konfigurace změnily předponu z azure.keyvault na spring.cloud.azure.keyvault.secret.
  2. spring.cloud.azure.keyvault.secret.enabled slouží k povolení všech funkcí tajných kódů Key Vault, včetně konfigurace Key Vault tajných klientských fazolí (například SecretClient a SecretAsyncClient) a přidání KeyVaultPropertySource do ConfigurableEnvironment.
  3. spring.cloud.azure.keyvault.secret.property-source-enabled slouží k povolení všech KeyVaultPropertySource. Projeví se pouze v spring.cloud.azure.keyvault.secret.enabled=true.
  4. Pro Azure běžné vlastnosti (například client, proxy, retry, credential, profile) a Key Vault vlastnosti (například endpoint, service-version). Pokud spring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME není nakonfigurovaný, použije se spring.cloud.azure.keyvault.secret.PROPERTY_NAME.
  5. spring.cloud.azure.keyvault.secret.property-sources[n].resource je specifický pro jedinečný prostředek Azure, takže pokud není nakonfigurovaný, nezíská hodnotu z jiných míst.

Od azure-spring-boot-starter-servicebus-jms do spring-cloud-azure-starter-servicebus-jms

Tento průvodce má pomoct s migrací z spring-cloud-azure-starter-servicebus-jms verze 3 .azure-spring-boot-starter-servicebus-jms

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny konfigurace sady SDK

Typ konfigurace pro spring.jms.servicebus.idle-timeout změny z long (milisekund) na Duration vzor pro čitelnost

Od azure-spring-boot-starter-storage do spring-cloud-azure-starter-storage-blob

Tento průvodce má pomoct s migrací z spring-cloud-azure-starter-storage-blob verze 3 .azure-spring-boot-starter-storage

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny konfigurace sady SDK

Všechny názvy vlastností konfigurace změnily předponu z azure.storage na spring.cloud.azure.storage.blob.

Následující tabulka ukazuje mapování vlastností z azure-spring-boot-starter-storage na spring-cloud-azure-starter-storage-blob:

Starší verze vlastností Moderní vlastnosti
azure.storage.account-name spring.cloud.azure.storage.blob.account-name
azure.storage.account-key spring.cloud.azure.storage.blob.account-key
azure.storage.blob-endpoint spring.cloud.azure.storage.blob.endpoint

Změny rozhraní API

Následující tabulka ukazuje mapování tříd z azure-spring-boot-starter-storage na spring-cloud-azure-starter-storage-blob:

Starší třída Moderní třída
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

Od azure-spring-boot-starter-storage do spring-cloud-azure-starter-storage-file-share

Tento průvodce má pomoct s migrací z spring-cloud-azure-starter-storage-file-share verze 3 .azure-spring-boot-starter-storage

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny konfigurace sady SDK

Všechny názvy vlastností konfigurace změnily předponu z azure.storage na spring.cloud.azure.storage.fileshare.

Následující tabulka ukazuje mapování vlastností z azure-spring-boot-starter-storage na spring-cloud-azure-starter-storage-file-share:

Starší verze vlastností Moderní vlastnosti
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

Změny rozhraní API

Následující tabulka ukazuje mapování tříd z azure-spring-boot-starter-storage na spring-cloud-azure-starter-storage-file-share:

Starší třída Moderní třída
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

Od azure-spring-cloud-starter-eventhubs do spring-cloud-azure-starter-integration-eventhubs

Tento průvodce má pomoct s migrací z spring-cloud-azure-starter-integration-eventhubs verze 2 nástroje azure-spring-cloud-starter-eventhubs.

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny konfigurace sady SDK

Důležitý

Předpona konfigurace byla změněna z spring.cloud.azure.eventhub na spring.cloud.azure.eventhubs.

Změny podřízených položek pro tuto předponu najdete v následujících tabulkách:

Následující tabulka ukazuje mapování vlastností z azure-spring-cloud-starter-eventhubs na spring-cloud-azure-starter-integration-eventhubs:

Starší verze vlastností Moderní vlastnosti
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

Můžete například změnit z:

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}

k:

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}

Poznámka

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Tok ověřování popsaný v tomto postupu, například pro databáze, mezipaměti, zasílání zpráv nebo služby AI, vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok používejte pouze v případě, že nejsou možné zabezpečit možnosti, jako jsou spravované identity pro připojení bez hesla nebo bez klíčů. V případě místních operací počítačů upřednostňujete identity uživatelů pro připojení bez hesla nebo bez klíčů.

Změny rozhraní API

  • Změny poznámek k naslouchacímu procesu najdete v průvodci migrací <<migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> knihovny.
  • Odstraňte EventHubOperation s funkcí přihlášení k odběru přesunutou do EventHubsMessageListenerContainer třídy a odesílající funkce se přesunula do EventHubsTemplate.
  • Přejmenujte EventHubInboundChannelAdapter na EventHubsInboundChannelAdapter, aby byla konzistentní se službou Azure Event Hubs.
  • Změňte konstruktor z EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) na EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) a EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Změňte styl vytváření instancí CheckpointConfig na jednoduchý konstruktor místo stylu sestavení.
  • Drop API EventHubOperation#setCheckpointConfig. Chcete-li nastavit konfiguraci kontrolního bodu pro adaptér příchozího kanálu, mohou uživatelé volat metodu EventHubsContainerProperties#setCheckpointConfig.
  • Drop API EventHubOperation#setBatchConsumerConfig. Pokud chcete nastavit konfiguraci dávkového využití pro adaptér příchozího kanálu, můžou uživatelé volat dvě metody EventHubsContainerProperties#getBatch#setMaxSize a EventHubsContainerProperties#getBatch#setMaxWaitTime mezitím.
  • V režimu dávkového využívání změňte názvy záhlaví zpráv převedené z dávkových zpráv.
    • Změňte záhlaví zprávy z azure_eventhub_enqueued_time na azure_eventhubs_batch_converted_enqueued_time.
    • Změňte záhlaví zprávy z azure_eventhub_offset na azure_eventhubs_batch_converted_offset.
    • Změňte záhlaví zprávy z azure_eventhub_sequence_number na azure_eventhubs_batch_converted_sequence_number.
    • Změňte záhlaví zprávy z azure_partition_key na azure_batch_converted_partition_key.
  • Při publikování zpráv do služby Event Hubs ignorujte všechna záhlaví zpráv převedená z dávkových zpráv. Záhlaví zahrnují:
    • 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
  • Režim kontrolního bodu BATCH teď funguje pouze v dávkovém režimu, který lze povolit předáním ListenerMode.BATCH do konstruktoru EventHubsInboundChannelAdapter.

Následující tabulka ukazuje mapování tříd z azure-spring-cloud-starter-eventhubs na spring-cloud-azure-starter-integration-eventhubs:

Starší třída Moderní třída
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

Ukázkový fragment kódu

  • EventHubsInboundChannelAdapter vzorový kód:

    Starší verze kódu:

    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;
        }
    }
    

    Moderní kód:

    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 vzorový kód:

    Starší verze kódu:

    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;
        }
    }
    

    Moderní kód:

    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;
        }
    }
    

Od azure-spring-integration-eventhubs do spring-integration-azure-eventhubs

Tento průvodce má pomoct s migrací z spring-integration-azure-eventhubs verze 2 nástroje azure-spring-integration-eventhubs.

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.

Změny rozhraní API

  • Odstraňte EventHubOperation s funkcí přihlášení k odběru přesunutou do EventHubsMessageListenerContainer třídy a odesílající funkce se přesunula do EventHubsTemplate.
  • Přejmenujte EventHubInboundChannelAdapter na EventHubsInboundChannelAdapter, aby byla konzistentní se službou Azure Event Hubs.
  • Změňte konstruktor z EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) na EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) a EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Změňte styl vytváření instancí CheckpointConfig na jednoduchý konstruktor místo stylu sestavení.
  • Drop API EventHubOperation#setCheckpointConfig. Chcete-li nastavit konfiguraci kontrolního bodu pro adaptér příchozího kanálu, mohou uživatelé volat metodu EventHubsContainerProperties#setCheckpointConfig.
  • Drop API EventHubOperation#setBatchConsumerConfig. Pokud chcete nastavit konfiguraci dávkového využití pro adaptér příchozího kanálu, můžou uživatelé volat dvě metody EventHubsContainerProperties#getBatch#setMaxSize a EventHubsContainerProperties#getBatch#setMaxWaitTime mezitím.
  • V režimu dávkového využívání změňte názvy záhlaví zpráv převedené z dávkových zpráv.
    • Změňte záhlaví zprávy z azure_eventhub_enqueued_time na azure_eventhubs_batch_converted_enqueued_time.
    • Změňte záhlaví zprávy z azure_eventhub_offset na azure_eventhubs_batch_converted_offset.
    • Změňte záhlaví zprávy z azure_eventhub_sequence_number na azure_eventhubs_batch_converted_sequence_number.
    • Změňte záhlaví zprávy z azure_partition_key na azure_batch_converted_partition_key.
  • Při publikování zpráv do služby Event Hubs ignorujte všechna záhlaví zpráv převedená z dávkových zpráv. Záhlaví zahrnují:
    • 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
  • Režim kontrolního bodu BATCH teď funguje pouze v dávkovém režimu, který lze povolit předáním ListenerMode.BATCH do konstruktoru EventHubsInboundChannelAdapter.

Následující tabulka ukazuje mapování tříd z azure-spring-integration-eventhubs na spring-integration-azure-eventhubs:

Starší třída Moderní třída
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

Od azure-spring-cloud-starter-servicebus do spring-cloud-azure-starter-integration-servicebus

Tento průvodce má pomoct s migrací z spring-cloud-azure-starter-integration-servicebus verze 2 nástroje azure-spring-cloud-starter-servicebus.

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny konfigurace sady SDK

U všech možností konfigurace podporovaných v spring-cloud-azure-starter-integration-servicebuszůstane předpona spring.cloud.azure.servicebus.

Následující tabulka ukazuje mapování vlastností z azure-spring-cloud-starter-servicebus na spring-cloud-azure-starter-integration-servicebus:

Starší verze vlastností Moderní vlastnosti
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
spring.cloud.azure.servicebus.transport-type spring.cloud.azure.servicebus.client.transport-type
spring.cloud.azure.servicebus.retry-options.retry-mode spring.cloud.azure.servicebus.retry.mode
spring.cloud.azure.servicebus.retry-options.max-retries spring.cloud.azure.servicebus.retry.exponential.max-retriesnebo spring.cloud.azure.servicebus.retry.fixed.max-retries, by měly být nakonfigurovány v závislosti na spring.cloud.azure.servicebus.retry.mode = fixedexponential
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delaynebo spring.cloud.azure.servicebus.retry.fixed.delay, by měly být nakonfigurovány v závislosti na spring.cloud.azure.servicebus.retry.mode = fixedexponential
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

Změny rozhraní API

  • Odstraňte ServiceBusQueueOperation a ServiceBusTopicOperation s funkcí přihlášení k odběru přesunutou do ServiceBusMessageListenerContainer třídy a odesílající funkce se přesunula do ServiceBusTemplate.
  • Odstraňte ServiceBusQueueInboundChannelAdapter a ServiceBusTopicInboundChannelAdapter a přesuňte funkce pro naslouchání entitě fronty nebo tématu Service Bus serviceBusInboundChannelAdapter.
  • Změňte konstruktor z ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) na ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) a ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Změňte konstruktor z ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) na ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) a ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Přetažení rozhraní API ServiceBusQueueOperation#setCheckpointConfig a ServiceBusTopicOperation#setCheckpointConfig. Pokud chcete nastavit konfiguraci kontrolního bodu pro adaptér příchozího kanálu, můžou uživatelé místo toho volat metodu ServiceBusContainerProperties#setAutoComplete. Chcete-li zakázat režim automatického dokončování, je ekvivalentní MANUAL režimu kontrolního bodu a k jeho povolení se aktivuje režim RECORD.
  • Přetažení rozhraní API ServiceBusQueueOperatio#setClientConfig a ServiceBusTopicOperation#setClientConfig. Pokud chcete nakonfigurovat podkladové ServiceBusProcessorClient používané adaptérem příchozího kanálu, můžou uživatelé místo toho použít ServiceBusContainerProperties.
  • Zahoďte podporu CompletableFuture v ServiceBusTemplate a DefaultMessageHandler, místo toho podporu Reactor.
  • Přidáním nového rozhraní API ServiceBusTemplate#setDefaultEntityType zadejte typ entity, který se vyžaduje, pokud pro PropertiesSupplier&lt;String, ProducerProperties&gt;není k dispozici žádná ProducerProperties#entityType.
  • Přetažení záhlaví zprávy AzureHeaders.RAW_ID. Místo toho použijte ServiceBusMessageHeaders.MESSAGE_ID.

Následující tabulka ukazuje mapování tříd z azure-spring-cloud-starter-servicebus na spring-cloud-azure-starter-integration-servicebus:

Starší třída Moderní třída
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

Ukázkový fragment kódu

  • ServiceBusInboundChannelAdapter vzorový kód:

    Starší kód použití ServiceBusQueueInboundChannelAdapter nebo 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;
        }
    
    }
    

    Moderní kód:

    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 vzorový kód:

    Starší verze kódu, který jako příklad přebírá frontu:

    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;
        }
    }
    

    Moderní kód:

    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;
        }
    }
    

Od azure-spring-integration-servicebus do spring-integration-azure-servicebus

Tento průvodce má pomoct s migrací z spring-integration-azure-servicebus verze 2 nástroje azure-spring-integration-servicebus.

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.

Změny rozhraní API

  • Odstraňte ServiceBusQueueOperation a ServiceBusTopicOperation s funkcí přihlášení k odběru přesunutou do ServiceBusMessageListenerContainer třídy a odesílající funkce se přesunula do ServiceBusTemplate.
  • Odstraňte ServiceBusQueueInboundChannelAdapter a ServiceBusTopicInboundChannelAdapter a přesuňte funkce pro naslouchání entitě fronty nebo tématu Service Bus serviceBusInboundChannelAdapter.
  • Změňte konstruktor z ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) na ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) a ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Změňte konstruktor z ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) na ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) a ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Přetažení rozhraní API ServiceBusQueueOperation#setCheckpointConfig a ServiceBusTopicOperation#setCheckpointConfig. Pokud chcete nastavit konfiguraci kontrolního bodu pro adaptér příchozího kanálu, můžou uživatelé místo toho volat metodu ServiceBusContainerProperties#setAutoComplete. Chcete-li zakázat režim automatického dokončování, je ekvivalentní MANUAL režimu kontrolního bodu a k jeho povolení se aktivuje režim RECORD.
  • Přetažení rozhraní API ServiceBusQueueOperation#setClientConfig a ServiceBusTopicOperation#setClientConfig. Pokud chcete nakonfigurovat podkladové ServiceBusProcessorClient používané adaptérem příchozího kanálu, můžou uživatelé místo toho použít ServiceBusContainerProperties.
  • Zahoďte podporu CompletableFuture v ServiceBusTemplate a DefaultMessageHandler, místo toho podporu Reactor.
  • Přidáním nového rozhraní API ServiceBusTemplate#setDefaultEntityType zadejte typ entity, který se vyžaduje, pokud pro PropertiesSupplier&lt;String, ProducerProperties&gt;není k dispozici žádná ProducerProperties#entityType.
  • Přetažení záhlaví zprávy AzureHeaders.RAW_ID. Místo toho použijte ServiceBusMessageHeaders.MESSAGE_ID.

Následující tabulka ukazuje mapování tříd z azure-spring-integration-servicebus na spring-integration-azure-servicebus:

Starší třída Moderní třída
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

Od azure-spring-cloud-starter-storage-queue do spring-cloud-azure-starter-integration-storage-queue

Tento průvodce má pomoct s migrací z spring-cloud-azure-starter-integration-storage-queue verze 2 nástroje azure-spring-cloud-starter-storage-queue.

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny konfigurace sady SDK

Všechny názvy vlastností konfigurace změnily předponu z spring.cloud.azure.storage na spring.cloud.azure.storage.queue.

Následující tabulka ukazuje mapování vlastností z azure-spring-cloud-starter-storage-queue na spring-cloud-azure-starter-integration-storage-queue:

Starší verze vlastností Moderní vlastnosti
spring.cloud.azure.storage.account spring.cloud.azure.storage.queue.account-name
spring.cloud.azure.storage.access-key spring.cloud.azure.storage.queue.account-key
spring.cloud.azure.storage.resource-group spring.cloud.azure.storage.queue.resource.resource-group

Změny rozhraní API

  • Odstraňte StorageQueueOperation a místo toho zadejte StorageQueueTemplate.
  • Zahoďte konfiguraci checkpoint-mode v StorageQueueTemplate, podporují pouze režim MANUAL.

Následující tabulka ukazuje mapování tříd z azure-spring-cloud-starter-storage-queue na spring-cloud-azure-starter-integration-storage-queue.

Starší třída Moderní třída
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

Od azure-spring-integration-storage-queue do spring-integration-azure-storage-queue

Tento průvodce má pomoct s migrací z spring-integration-azure-storage-queue verze 2 nástroje azure-spring-integration-storage-queue.

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.

Změny rozhraní API

  • Odstraňte StorageQueueOperation a místo toho zadejte StorageQueueTemplate.
  • Zahoďte konfiguraci checkpoint-mode v StorageQueueTemplate, podporují pouze režim MANUAL.

Následující tabulka ukazuje mapování tříd z azure-spring-integration-storage-queue na spring-integration-azure-storage-queue.

Starší třída Moderní třída
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

Od azure-spring-cloud-stream-binder-eventhubs do spring-cloud-azure-stream-binder-eventhubs

Tento průvodce má pomoct s migrací z spring-cloud-azure-stream-binder-eventhubs verze 2 nástroje azure-spring-cloud-stream-binder-eventhubs.

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny konfigurace sady SDK

Důležitý

Předpona konfigurace byla změněna z spring.cloud.azure.eventhub na spring.cloud.azure.eventhubs.

Důležitý

Typ pořadače je přejmenován z: eventhub na eventhubs.

Změny podřízených položek pro následující předponu najdete v následující tabulce.

Následující tabulka ukazuje mapování vlastností z azure-spring-cloud-stream-binder-eventhubs na spring-cloud-azure-stream-binder-eventhubs:

Starší verze vlastností Moderní vlastnosti
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

Poznámka

Typ hodnoty konfigurace start-position se také změní z výčtu com.azure.spring.integration.core.api.StartPosition na mapStartPositionProperties pro každý oddíl. Klíč je TEDY ID oddílu a hodnota je com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties, která zahrnuje vlastnosti posunu, pořadového čísla, vyčíslené datum a to, zda včetně.

Příklady migrace konfigurace

Pokud chcete použít připojovací řetězec pro ověřování a migrovat výše uvedené vlastnosti, jsou změny konfigurace uvedeny takto:

Starší konfigurace:

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

Moderní konfigurace:

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

Poznámka

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Tok ověřování popsaný v tomto postupu, například pro databáze, mezipaměti, zasílání zpráv nebo služby AI, vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok používejte pouze v případě, že nejsou možné zabezpečit možnosti, jako jsou spravované identity pro připojení bez hesla nebo bez klíčů. V případě místních operací počítačů upřednostňujete identity uživatelů pro připojení bez hesla nebo bez klíčů.

Pokud použijete objekty zabezpečení místo připojovacích řetězců, ve verzích před 4.0 se aplikace nejprve připojí k Azure Resource Manager (ARM) s poskytnutým objektem zabezpečení a pak načte připojovací řetězec zadaného oboru názvů pomocí ARM. Na konci aplikace používá načtené připojovací řetězec pro připojení k Azure Event Hubs. Tímto způsobem by měl být poskytnut zadaný objekt zabezpečení s rolí Contributor pro načtení přidruženého oboru názvů Azure Event Hubs.

Pro Azure Spring Apps 4.0 poskytujeme dva způsoby využití objektů zabezpečení pro ověřování. Jeden stále používá objekty zabezpečení pro připojení k ARM a načtení připojovacích řetězců, ve kterých se pro objekty zabezpečení vyžaduje Contributor role. Druhý využívá objekty zabezpečení k ověření v Microsoft Entra ID a pak se připojují k Azure Event Hubs přímo. V tomto případě už není Contributor role nutná, zatímco jiné Data související role jsou vyžadovány pro operace zasílání zpráv. Pokud chcete zajistit, aby objekt zabezpečení získal dostatečná oprávnění pro přístup k prostředku Azure, přečtěte si téma Authorize přístupu pomocí Microsoft Entra ID.

V případě ověřování založeného na ARM je například migrace instančního objektu uvedená v následujícím seznamu, kde by se přiřazená role neměla měnit:

Starší konfigurace:

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}

Poznámka

Hodnoty povolené pro tenant-id jsou: common, organizations, consumersnebo ID tenanta. Další informace o těchto hodnotách najdete v části Použití nesprávného koncového bodu (osobní a organizační účty) v části Chyba AADSTS50020 – Uživatelský účet poskytovatele identity neexistuje v tenantovi. Informace o převodu aplikace s jedním tenantem najdete v tématu Konvertování jednoklientských aplikací na víceklientů v Microsoft Entra ID.

Vyžaduje se moderní konfigurace, vlastnosti id Azure předplatného a skupiny prostředků:

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}

Poznámka

Hodnoty povolené pro tenant-id jsou: common, organizations, consumersnebo ID tenanta. Další informace o těchto hodnotách najdete v části Použití nesprávného koncového bodu (osobní a organizační účty) v části Chyba AADSTS50020 – Uživatelský účet poskytovatele identity neexistuje v tenantovi. Informace o převodu aplikace s jedním tenantem najdete v tématu Konvertování jednoklientských aplikací na víceklientů v Microsoft Entra ID.

Můžete také migrovat na ověřování a autorizaci pomocí Microsoft Entra ID přímo bez nutnosti objíždět se do ARM. Ujistěte se, že objekt zabezpečení potřebný Data rolím pro operace zasílání zpráv. Příklady konfigurace instančního objektu a spravované identity jsou uvedené takto:

  • S instančním objektem

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

Poznámka

Hodnoty povolené pro tenant-id jsou: common, organizations, consumersnebo ID tenanta. Další informace o těchto hodnotách najdete v části Použití nesprávného koncového bodu (osobní a organizační účty) v části Chyba AADSTS50020 – Uživatelský účet poskytovatele identity neexistuje v tenantovi. Informace o převodu aplikace s jedním tenantem najdete v tématu Konvertování jednoklientských aplikací na víceklientů v Microsoft Entra ID.

  • Se spravovanou identitou

    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}
    

Změny rozhraní API

Následující tabulka ukazuje mapování tříd z azure-spring-cloud-stream-binder-eventhubs na spring-cloud-azure-stream-binder-eventhubs.

Starší třída Moderní třída
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

Od azure-spring-cloud-stream-binder-servicebus-* do spring-cloud-azure-stream-binder-servicebus

Tento průvodce má pomoct s migrací z spring-cloud-azure-stream-binder-servicebus verze 2 nebo azure-spring-cloud-stream-binder-servicebus-queueazure-spring-cloud-stream-binder-servicebus-topic.

Obecné informace najdete na následujících odkazech:

  • Přehled změn ve verzi 4.0 najdete v částech Úvod a Výhody migrace.
  • Další informace o změnách strategie v pojmenování projektu najdete v části Změny názvů.
  • Informace o použití jednoho kusovníku pro všechny knihovny Azure Spring Cloud najdete v části BOM.
  • Informace o zpracování ověřování ve spring cloudu Azure 4.0 najdete v části Změny ověřování.
  • Informace o využití spring-boot-properties-migrator během migrace najdete v části Konfigurace jednotlivých sad SDK.
  • Další informace o globálních a běžných změnách konfigurace najdete v části Globální konfigurace.

Změny konfigurace sady SDK

Důležitý

Starší knihovny pořadače jsou azure-spring-cloud-stream-binder-servicebus-queue a azure-spring-cloud-stream-binder-servicebus-topica nyní jsou sloučeny do jednoho spring-cloud-azure-stream-binder-servicebus.

Důležitý

Typ pořadače se zkombinuje z servicebus-queue a servicebus-topic jako servicebus.

Následující tabulka uvádí nové vlastnosti konfigurace spring-cloud-azure-stream-binder-servicebus:

Moderní vlastnosti Popis
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type Pokud používáte odesílající funkci, musíte nastavit typ entity, který můžete nastavit na téma nebo frontu.

Následující tabulka ukazuje mapování vlastností z azure-spring-cloud-stream-binder-servicebus-* na spring-cloud-azure-stream-binder-servicebus:

Starší verze vlastností Moderní vlastnosti
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
spring.cloud.azure.servicebus.transport-type spring.cloud.azure.servicebus.client.transport-type
spring.cloud.azure.servicebus.retry-options.retry-mode spring.cloud.azure.servicebus.retry.mode
spring.cloud.azure.servicebus.retry-options.max-retries spring.cloud.azure.servicebus.retry.exponential.max-retriesnebo spring.cloud.azure.servicebus.retry.fixed.max-retries, by měly být nakonfigurovány v závislosti na spring.cloud.azure.servicebus.retry.mode = fixedexponential
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delaynebo spring.cloud.azure.servicebus.retry.fixed.delay, by měly být nakonfigurovány v závislosti na spring.cloud.azure.servicebus.retry.mode = fixedexponential
spring.cloud.azure.servicebus.retry-options.max-delay spring.cloud.azure.servicebus.retry.exponential.max-delay
spring.cloud.azure.servicebus.retry-options.try-timeout spring.cloud.azure.servicebus.retry.try-timeout
spring.cloud.stream.servicebus.queue.bindings.* spring.cloud.stream.servicebus.bindings.*
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.concurrency spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions / max-concurrent-calls
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.checkpoint-mode spring.cloud.stream.servicebus.bindings.binding-name.consumer.auto-complete
spring.cloud.stream.servicebus.topic.bindings.* spring.cloud.stream.servicebus.bindings.*
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.concurrency spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions / max-concurrent-calls
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.checkpoint-mode spring.cloud.stream.servicebus.bindings.binding-name.consumer.auto-complete

Poznámka

Vlastnost concurrency bude nahrazena maxConcurrentSessions při sessionsEnabled je true a maxConcurrentCalls při sessionsEnabled je false.

Poznámka

Povolení automatického dokončování se rovná režimu kontrolního bodu RECORD a opačně MANUAL režimu.

Příklady migrace konfigurace

Starší konfigurace, například fronta:

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

Moderní konfigurace:

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

Poznámka

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Tok ověřování popsaný v tomto postupu, například pro databáze, mezipaměti, zasílání zpráv nebo služby AI, vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok používejte pouze v případě, že nejsou možné zabezpečit možnosti, jako jsou spravované identity pro připojení bez hesla nebo bez klíčů. V případě místních operací počítačů upřednostňujete identity uživatelů pro připojení bez hesla nebo bez klíčů.

Pokud použijete objekty zabezpečení místo připojovacích řetězců, ve verzích před 4.0 se aplikace nejprve připojí k Azure Resource Manager (ARM) s poskytnutým objektem zabezpečení a pak načte připojovací řetězec zadaného oboru názvů pomocí ARM. Na konci aplikace používá načtené připojovací řetězec pro připojení k Azure Service Bus. Tímto způsobem by měl být poskytnut zadaný objekt zabezpečení s rolí Contributor pro načtení přidruženého oboru názvů Azure Service Bus.

Pro Azure Spring Apps 4.0 poskytujeme dva způsoby využití objektů zabezpečení pro ověřování. Jeden stále používá objekty zabezpečení pro připojení k ARM a načtení připojovacích řetězců, ve kterých se pro objekty zabezpečení vyžaduje Contributor role. Druhý využívá objekty zabezpečení k ověření Microsoft Entra ID a pak se připojují k Azure Service Bus přímo. V tomto případě už není Contributor role nutná, zatímco jiné Data související role jsou vyžadovány pro operace zasílání zpráv. Pokud chcete zajistit, aby objekt zabezpečení získal dostatečná oprávnění pro přístup k prostředku Azure, přečtěte si téma Authorize přístupu pomocí Microsoft Entra ID.

V případě ověřování založeného na ARM je například migrace instančního objektu uvedená v následujícím seznamu, kde by se přiřazená role neměla měnit:

Starší konfigurace:

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}

Poznámka

Hodnoty povolené pro tenant-id jsou: common, organizations, consumersnebo ID tenanta. Další informace o těchto hodnotách najdete v části Použití nesprávného koncového bodu (osobní a organizační účty) v části Chyba AADSTS50020 – Uživatelský účet poskytovatele identity neexistuje v tenantovi. Informace o převodu aplikace s jedním tenantem najdete v tématu Konvertování jednoklientských aplikací na víceklientů v Microsoft Entra ID.

Vyžaduje se moderní konfigurace, vlastnosti id Azure předplatného a skupiny prostředků:

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}

Poznámka

Hodnoty povolené pro tenant-id jsou: common, organizations, consumersnebo ID tenanta. Další informace o těchto hodnotách najdete v části Použití nesprávného koncového bodu (osobní a organizační účty) v části Chyba AADSTS50020 – Uživatelský účet poskytovatele identity neexistuje v tenantovi. Informace o převodu aplikace s jedním tenantem najdete v tématu Konvertování jednoklientských aplikací na víceklientů v Microsoft Entra ID.

Můžete také migrovat na ověřování a autorizaci pomocí Microsoft Entra ID přímo bez nutnosti objíždět se do ARM. Ujistěte se, že objekt zabezpečení potřebný Data rolím pro operace zasílání zpráv. Příklady konfigurace instančního objektu a spravované identity jsou uvedené takto:

  • S instančním objektem

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

Poznámka

Hodnoty povolené pro tenant-id jsou: common, organizations, consumersnebo ID tenanta. Další informace o těchto hodnotách najdete v části Použití nesprávného koncového bodu (osobní a organizační účty) v části Chyba AADSTS50020 – Uživatelský účet poskytovatele identity neexistuje v tenantovi. Informace o převodu aplikace s jedním tenantem najdete v tématu Konvertování jednoklientských aplikací na víceklientů v Microsoft Entra ID.

  • Se spravovanou identitou

    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}
    

Změny rozhraní API

  • Přetažení záhlaví zprávy AzureHeaders.RAW_ID. Místo toho použijte ServiceBusMessageHeaders.MESSAGE_ID.

Následující tabulka ukazuje mapování tříd z azure-spring-cloud-stream-binder-eventhubs na spring-cloud-azure-stream-binder-eventhubs.

Starší třída Moderní třída
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

Knihovna com.azure.spring:azure-spring-cloud-messaging není připravená na verzi 4.0. Funkce poznámek naslouchacího procesu je přepracovaná, takže @AzureMessageListener, @AzureMessageListenersa @EnableAzureMessaging poznámky se v současné době nepodporují.