Przewodnik migracji dla platformy Spring Cloud Azure 4.0
Ten przewodnik ułatwia migrację do platformy Spring Cloud azure 4.0 ze starszych bibliotek platformy Azure Spring.
Wprowadzenie
Wywołamy biblioteki, których identyfikator grupy i identyfikator artefaktu są zgodne ze wzorcem com.azure.spring:spring-cloud-azure-*
nowoczesnych bibliotek oraz bibliotek z wzorcem com.azure.spring:azure-spring-boot-*
, com.azure.spring:azure-spring-cloud-*
lub com.azure.spring:azure-spring-integration-*
starszymi bibliotekami.
Ten przewodnik koncentruje się na porównaniach równoległych dla podobnych konfiguracji między nowoczesnymi i starszymi bibliotekami.
Zakłada się, że com.azure.spring:azure-spring-boot-*
znajomość pakietu lub com.azure.spring:azure-spring-cloud-*
com.azure.spring:azure-spring-integration-*
.
Jeśli dopiero zaczynasz korzystać z bibliotek platformy Spring Cloud Azure 4.0, zapoznaj się z przewodnikiem dla deweloperów platformy Azure Spring Cloud, a nie z tego przewodnika.
Korzyści z migracji
Naturalne pytanie, które należy zadać podczas rozważania, czy należy przyjąć nową wersję, czy bibliotekę, jest jego korzyścią. Ponieważ platforma Azure dojrzała i została włączona przez bardziej zróżnicowaną grupę deweloperów, skupiliśmy się na uczeniu się wzorców i praktyk, aby jak najlepiej wspierać produktywność deweloperów i zrozumieć luki, które mają biblioteki platformy Azure Spring Cloud.
Było kilka obszarów spójnych opinii wyrażonych w bibliotekach platformy Azure Spring Cloud. Najważniejsze jest to, że biblioteki dla różnych usług platformy Azure nie włączyły pełnego zestawu konfiguracji. Ponadto niespójność nazw projektów, identyfikatorów artefaktów, wersji i konfiguracji sprawiła, że krzywa nauki jest stroma.
Aby ulepszyć środowisko programistyczne w bibliotekach platformy Azure Spring Cloud, wprowadzono zestaw wytycznych dotyczących projektowania, aby zapewnić, że biblioteki platformy Azure spring mają naturalny i idiotyczny charakter w odniesieniu do ekosystemu Spring. Dalsze szczegóły są dostępne w celach projektowych dla osób zainteresowanych.
Platforma Spring Cloud Azure 4.0 udostępnia wspólne środowisko między bibliotekami integrowanymi z różnymi projektami Spring, na przykład Spring Boot, Spring Integration, Spring Cloud Stream itd. Wspólne środowisko obejmuje:
- Ujednolicony model BOM obejmujący wszystkie biblioteki Spring Cloud Azure 4.0.
- Spójna konwencja nazewnictwa artefaktów.
- Ujednolicony sposób konfigurowania poświadczeń, serwera proxy, ponawiania prób, środowiska chmury i ustawień warstwy transportu.
- Obsługa wszystkich metod uwierzytelniania obsługiwanych przez usługę platformy Azure lub zestaw Azure Service SDK.
Omówienie
Ten przewodnik migracji składa się z następujących sekcji:
- Zmiany nazewnictwa platformy Spring Cloud na platformie Azure 4.0
- Zmiany artefaktów: zmieniono nazwę/dodano/usunięto
- Zmiany zależności
- Zmiany uwierzytelniania
- Właściwości konfiguracji
- Zmiany powodujące niezgodność interfejsu API
- Zmiany w bibliotece
Zmiany nazewnictwa
Nigdy nie było spójnej ani oficjalnej nazwy, aby wywołać wszystkie biblioteki platformy Azure Spring Cloud. Niektóre z nich zostały nazwane Azure Spring Boot
, a niektóre z nich Spring on Azure
. Od wersji 4.0 zaczęliśmy używać nazwy Spring Cloud Azure
projektu do reprezentowania wszystkich bibliotek platformy Azure Spring.
lista BOM
Kiedyś dostarczaliśmy dwa elementy BOM dla naszych bibliotek, azure-spring-boot-bom
i azure-spring-cloud-dependencies
, ale połączyliśmy te dwa elementy BOM w jeden obiekt BOM od wersji 4.0, spring-cloud-azure-dependencies
czyli . Dodaj wpis w dependencyManagement
sekcji projektu, aby skorzystać z zarządzania zależnościami.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>4.14.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Uwaga
Jeśli używasz środowiska Spring Boot 3.x, pamiętaj, aby ustawić spring-cloud-azure-dependencies
wersję na 5.8.0
.
Aby uzyskać więcej informacji na temat spring-cloud-azure-dependencies
wersji, zobacz Która wersja platformy Spring Cloud powinna być używana przez platformę Azure.
Zmiany artefaktów: zmieniono nazwę/dodano/usunięto
Identyfikatory grup są takie same w przypadku nowoczesnych i starszych bibliotek platformy Azure Spring Cloud. To wszystko com.azure.spring
. Identyfikatory artefaktów dla nowoczesnych bibliotek platformy Azure Spring Cloud uległy zmianie. Zgodnie z tym, do którego projektu spring należy, Spring Boot, Spring Integration lub Spring Cloud Stream, wzorzec identyfikatorów artefaktów może być spring-cloud-azure-starter-[service]
, spring-integration-azure-[service]
lub spring-cloud-azure-stream-binder-[service]
. Starsze szablony startowe dla każdego z nich mają identyfikator artefaktu zgodnie ze wzorcem azure-spring-*
. Zapewnia to szybki i dostępny środek ułatwiający zrozumienie, niezależnie od tego, czy używasz nowoczesnych, czy starszych startów.
W procesie tworzenia platformy Spring Cloud Azure 4.0 zmieniliśmy nazwę niektórych artefaktów, aby były zgodne z nowymi konwencjami nazewnictwa, usunięto niektóre artefakty, aby funkcjonalność mogła zostać umieszczona w bardziej odpowiednim artefaktzie i dodaliśmy nowe artefakty, aby lepiej obsługiwać niektóre scenariusze.
W poniższej tabeli przedstawiono mapowania między starszym identyfikatorem artefaktu a nowoczesnym identyfikatorem artefaktu:
Identyfikator starszego artefaktu | Identyfikator nowoczesnego artefaktu | opis |
---|---|---|
azure-spring-boot-starter | spring-cloud-azure-starter | Ten artefakt został usunięty ze wszystkimi funkcjami, które można scalić z nowym spring-cloud-azure-starter artefaktem. |
azure-spring-boot-starter-active-directory | spring-cloud-azure-starter-active-directory | Zmieniono nazwę artefaktu. |
azure-spring-boot-starter-active-directory-b2c | spring-cloud-azure-starter-active-directory-b2c | Zmieniono nazwę artefaktu. |
azure-spring-boot-starter-cosmos | spring-cloud-azure-starter-data-cosmos | Zmieniono nazwę artefaktu, aby dodać data element wskazujący użycie usługi Spring Data w usłudze Azure Cosmos DB. |
azure-spring-boot-starter-keyvault-certificates | nie dotyczy | Nieuwzględniane w tej wersji, ale będą obsługiwane w nowszej wersji. |
azure-spring-boot-starter-keyvault-secrets | spring-cloud-azure-starter-keyvault-secrets | Zmieniono nazwę artefaktu. |
azure-spring-boot-starter-servicebus-jms | spring-cloud-azure-starter-servicebus-jms | Zmieniono nazwę artefaktu. |
azure-spring-boot-starter-storage | spring-cloud-azure-starter-storage-blob spring-cloud-azure-starter-storage-file-share |
Starszy artefakt zawiera funkcje zarówno obiektu blob magazynu, jak i udziału plików, które zostały umieszczone w dwóch oddzielnych artefaktach w wersji 4.0, spring-cloud-azure-starter-storage-blob i spring-cloud-azure-starter-storage-file-share. |
azure-spring-boot | nie dotyczy | Ten artefakt został usunięty ze wszystkimi funkcjami, które można scalić z nowym spring-cloud-azure-autoconfigure artefaktem. |
azure-spring-cloud-autoconfigure | nie dotyczy | Ten artefakt został usunięty ze wszystkimi funkcjami, które można scalić z nowym spring-cloud-azure-autoconfigure artefaktem. |
azure-spring-cloud-context | nie dotyczy | Ten artefakt został usunięty ze wszystkimi funkcjami, które można scalić z nowymi spring-cloud-azure-autoconfigure artefaktami.spring-cloud-azure-resourcemanager |
azure-spring-cloud-messaging | spring-messaging-azure | Adnotacja odbiornika obsługi komunikatów została porzucona. |
azure-spring-cloud-starter-cache | nie dotyczy | Ten artefakt został usunięty, aby użyć usługi Redis, wystarczy dodać spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager i spring-cloud-azure-starter. Aby uzyskać więcej informacji na temat użycia, zobacz Obsługa usługi Spring Cloud Azure Redis. |
azure-spring-cloud-starter-eventhubs-kafka | nie dotyczy | Ten artefakt został usunięty, aby użyć platformy kafka, wystarczy dodać spring kafka, spring-cloud-azure-resourcemanager i spring-cloud-azure-starter. Aby uzyskać więcej informacji na temat użycia, zobacz Spring Cloud Azure Kafka support (Obsługa platformy Azure Platformy Azure w usłudze Spring Cloud). |
azure-spring-cloud-starter-eventhubs | spring-cloud-azure-starter-integration-eventhubs | Zmieniono nazwę artefaktu, aby dodać integration element wskazujący użycie integracji spring z usługą Event Hubs. |
azure-spring-cloud-starter-servicebus | spring-cloud-azure-starter-integration-servicebus | Zmieniono nazwę artefaktu, aby dodać integration element wskazujący użycie integracji spring z usługą Service Bus. |
azure-spring-cloud-starter-storage-queue | spring-cloud-azure-starter-integration-storage-queue | Zmieniono nazwę artefaktu, aby dodać integration element wskazujący użycie integracji platformy Spring z kolejką magazynu. |
azure-spring-cloud-storage | nie dotyczy | Ten artefakt został usunięty ze wszystkimi funkcjami scalanymi z nowym spring-cloud-azure-autoconfigure artefaktem. |
azure-spring-cloud-stream-binder-eventhubs | spring-cloud-azure-stream-binder-eventhubs | Ten artefakt został refaktoryzowany przy użyciu nowego projektu, głównie spring-cloud-azure-stream-binder-eventhubs i spring-cloud-azure-stream-binder-eventhubs-core . |
azure-spring-cloud-stream-binder-service-core | spring-cloud-azure-stream-binder-servicebus-core | Zmieniono nazwę artefaktu. |
azure-spring-cloud-stream-binder-servicebus-queue | spring-cloud-azure-stream-binder-servicebus | Ten artefakt został usunięty ze wszystkimi funkcjami, które można scalić z artefaktem spring-cloud-azure-stream-binder-servicebus . |
azure-spring-cloud-stream-binder-servicebus-topic | spring-cloud-azure-stream-binder-servicebus | Ten artefakt został usunięty ze wszystkimi funkcjami, które można scalić z artefaktem spring-cloud-azure-stream-binder-servicebus . |
azure-spring-integration-core | spring-integration-azure-core | Zmieniono nazwę artefaktu. |
azure-spring-integration-eventhubs | spring-integration-azure-eventhubs | Zmień nazwę artefaktu. |
azure-spring-integration-servicebus | spring-integration-azure-servicebus | Zmień nazwę artefaktu. |
azure-spring-integration-storage-queue | spring-integration-azure-storage-queue | Zmień nazwę artefaktu. |
nie dotyczy | spring-cloud-azure-siłownik | Nowo dodany artefakt siłownika platformy Azure Spring Cloud. |
nie dotyczy | spring-cloud-azure-siłownik-autokonfiguracja | Nowo dodany artefakt autokonfiguracji siłownika platformy Azure Spring Cloud, w tym autokonfiguracja siłownika. |
nie dotyczy | spring-cloud-azure-autoconfigure | Nowo dodany artefakt rozwiązania Spring Cloud Azure AutoConfigure, w tym wszystkie konfiguracje automatyczne dla klientów zestawu SDK, obsługa zabezpieczeń spring, obsługa platformy Spring Data i obsługa integracji spring. |
nie dotyczy | spring-cloud-azure-core | Nowo dodany artefakt Spring Cloud Azure Core, w tym wszystkie podstawowe funkcje. |
nie dotyczy | spring-cloud-azure-resourcemanager | Nowo dodany artefakt usługi Resource Manager. Jest to biblioteka Podstawowa korzystająca z usługi Azure Resource Manager do odczytywania metadanych i tworzenia zasobów. |
nie dotyczy | spring-cloud-azure-service | Nowo dodany artefakt usługi Platformy Azure Spring Cloud, w tym abstrakcji dla usług platformy Azure. |
nie dotyczy | spring-cloud-azure-starter-appconfiguration | Nowo dodany starter do korzystania z klienta zestawu SDK konfiguracji aplikacja systemu Azure. |
nie dotyczy | spring-cloud-azure-starter-cosmos | Nowo dodany starter do korzystania z klienta zestawu SDK usługi Azure Cosmos DB. |
nie dotyczy | spring-cloud-azure-starter-eventhubs | Nowo dodany starter do korzystania z klienta zestawu SDK usługi Azure Event Hubs. |
nie dotyczy | spring-cloud-azure-starter-servicebus | Nowo dodany starter do korzystania z klienta zestawu SDK usługi Azure Service Bus. |
nie dotyczy | spring-cloud-azure-starter-storage-blob | Nowo dodany starter do korzystania z klienta zestawu SDK obiektów blob usługi Azure Storage. |
nie dotyczy | spring-cloud-azure-starter-storage-file-share | Nowo dodany starter do korzystania z klienta zestawu SDK udziału plików usługi Azure Storage. |
nie dotyczy | spring-cloud-azure-starter-storage-queue | Nowo dodany starter do korzystania z klienta zestawu SDK kolejki usługi Azure Storage. |
nie dotyczy | spring-cloud-azure-starter-stream-eventhubs | Nowo dodany szablon startowy do korzystania z narzędzia binder strumienia Spring Cloud w usłudze Azure Event Hubs. |
nie dotyczy | spring-cloud-azure-starter-stream-servicebus | Nowo dodany starter do korzystania z narzędzia binder strumienia Spring Cloud usługi Azure Service Bus |
nie dotyczy | spring-cloud-azure-stream-binder-eventhubs-core | Nowo dodany artefakt podstawowy usługi Spring Cloud Stream dla usługi Azure Event Hubs. |
Zmiany zależności
Niektóre niepotrzebne zależności zostały uwzględnione w starszych artefaktach, które zostały usunięte w nowoczesnych bibliotekach platformy Spring Cloud Azure 4.0. Pamiętaj, aby ręcznie dodać usunięte zależności do projektu, aby zapobiec awariom.
Biblioteki, które mają zmiany zależności, obejmują:
- spring-cloud-azure-starter
- spring-cloud-azure-starter-active-directory
- spring-cloud-azure-starter-active-directory-b2c
Zmiany uwierzytelniania
Platforma Spring Cloud Azure 4.0 obsługuje wszystkie metody uwierzytelniania obsługiwane przez każdy zestaw SDK usługi platformy Azure. Umożliwia skonfigurowanie poświadczeń tokenu globalnego, a także podanie poświadczeń tokenu na każdym poziomie usługi. Jednak poświadczenie nie jest wymagane do skonfigurowania platformy Spring Cloud Azure 4.0, ponieważ może zastosować poświadczenia przechowywane w lokalnym środowisku programistycznym lub tożsamości zarządzanej w usługach platformy Azure. Upewnij się, że podmiot zabezpieczeń otrzymał wystarczające uprawnienia dostępu do docelowych zasobów platformy Azure.
Uwaga
W przypadku przypisywania ról do podmiotów zabezpieczeń w celu interakcji z usługami Data
obsługi komunikatów platformy Azure powiązane role są wymagane do przeprowadzania operacji obsługi komunikatów. W przypadku bibliotek usługi Azure Spring Apps Stream Event Hubs /Service Bus Binder rola jest wymagana, Contributor
gdy jest wymagana funkcja automatycznego tworzenia zasobów. Aby uzyskać więcej informacji, zobacz Role wbudowane platformy Azure.
Poświadczenie łańcuchowe, fasola DefaultAzureCredential
jest domyślnie automatycznie konfigurowana i będzie używana przez wszystkie składniki, jeśli nie określono więcej informacji o uwierzytelnianiu. Aby uzyskać więcej informacji, zobacz sekcję DefaultAzureCredential biblioteki klienta tożsamości platformy Azure dla języka Java.
Właściwości konfiguracji
Migracja właściwości
Utworzyliśmy plik additional-spring-configuration-metadata.json , aby wygładzyć migrację właściwości podczas korzystania z spring-boot-properties-migrator
programu . Najpierw dodaj następującą właściwość migracji do aplikacji:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
Lub, jeśli używasz narzędzia Gradle:
runtime("org.springframework.boot:spring-boot-properties-migrator")
Jeśli uruchomisz aplikację, zidentyfikuje ona właściwości, które nie są już zarządzane przez platformę Spring Cloud Azure. Jeśli istnieje zamiana, tymczasowo ponownie zamapuje właściwość za pomocą ostrzeżenia. Jeśli nie ma zamiany, raport o błędach zawiera więcej informacji. Tak czy inaczej, konfiguracja musi zostać zaktualizowana i zależność usunięta po zaktualizowaniu konfiguracji.
Zanim przejdziesz dalej, warto użyć funkcji wyszukiwania środowiska IDE, aby sprawdzić, czy nie używasz jednej z właściwości, które zostały zmigrowane w teście integracji.
Uwaga
W tej zmianie zmieniliśmy wiele właściwości konfiguracji. Użycie narzędzia spring-boot-properties-migrator
ułatwi bezproblemowe migrację.
Konfiguracje globalne
Nowoczesne spring-cloud-azure-starter
umożliwia definiowanie właściwości, które mają zastosowanie do wszystkich zestawów SDK platformy Azure w przestrzeni nazw spring.cloud.azure
. Ta funkcja nie była obsługiwana w starszej wersji azure-spring-boot-starter
. Konfiguracje globalne można podzielić na pięć kategorii pokazanych w poniższej tabeli:
Prefiks | opis |
---|---|
spring.cloud.azure.client | Konfiguruje klientów transportu poniżej każdego zestawu Azure SDK. |
spring.cloud.azure.credential | Konfiguruje sposób uwierzytelniania za pomocą identyfikatora Entra firmy Microsoft. |
spring.cloud.azure.profile | Konfiguruje środowisko chmury platformy Azure. |
spring.cloud.azure.proxy | Konfiguruje opcje serwera proxy, które mają zastosowanie do wszystkich klientów zestawu Azure SDK. |
spring.cloud.azure.retry | Konfiguruje opcje ponawiania, mają zastosowanie do wszystkich klientów zestawu Azure SDK. Opcje ponawiania prób mają obsługiwaną część zestawów SDK, nie spring.cloud.azure.cosmos.retry ma elementu . |
Aby uzyskać pełną listę konfiguracji, zobacz Spring Cloud Azure configuration properties (Właściwości konfiguracji platformy Azure platformy Spring Cloud).
Konfigurowanie każdego zestawu SDK
Aby uzyskać szczegółowe informacje o opcjach konfiguracji na poziomie zestawu SDK, skorzystaj z następujących linków:
- Z usługi azure-spring-boot-starter-active-directory do spring-cloud-azure-starter-active-directory
- Z witryny azure-spring-boot-starter-active-directory-b2c do spring-cloud-azure-starter-active-directory-b2c
- Z usługi azure-spring-boot-starter-cosmos do spring-cloud-azure-starter-data-cosmos
- Z usługi azure-spring-boot-starter-keyvault-secrets do spring-cloud-azure-starter-keyvault-secrets
- Od azure-spring-boot-starter-servicebus-jms do spring-cloud-azure-starter-servicebus-jms
- Z magazynu azure-spring-boot-starter do spring-cloud-azure-starter-storage-blob
- Z magazynu azure-spring-boot-starter do spring-cloud-azure-starter-storage-file-share
- Z witryny azure-spring-cloud-starter-eventhubs do spring-cloud-azure-starter-integration-eventhubs
- Od azure-spring-cloud-starter-servicebus do spring-cloud-azure-starter-integration-servicebus
- Z usługi azure-spring-cloud-starter-storage-queue do spring-cloud-azure-starter-integration-storage-queue
- Z witryny azure-spring-cloud-stream-binder-eventhubs do spring-cloud-azure-stream-binder-eventhubs
- Z azure-spring-cloud-stream-binder-servicebus-* do spring-cloud-azure-stream-binder-servicebus
Zmiany powodujące niezgodność interfejsu API
Aby uzyskać szczegółowe informacje na temat zmian powodujących niezgodność interfejsu API w każdej bibliotece, skorzystaj z następujących linków:
- Z usługi azure-spring-boot-starter-active-directory do spring-cloud-azure-starter-active-directory
- Z witryny azure-spring-boot-starter-active-directory-b2c do spring-cloud-azure-starter-active-directory-b2c
- Z magazynu azure-spring-boot-starter do spring-cloud-azure-starter-storage-blob
- Z magazynu azure-spring-boot-starter do spring-cloud-azure-starter-storage-file-share
- Z witryny azure-spring-cloud-starter-eventhubs do spring-cloud-azure-starter-integration-eventhubs
- Z witryny azure-spring-integration-eventhubs do spring-integration-azure-eventhubs
- Od azure-spring-cloud-starter-servicebus do spring-cloud-azure-starter-integration-servicebus
- Od azure-spring-integration-servicebus do spring-integration-azure-servicebus
- Z usługi azure-spring-cloud-starter-storage-queue do spring-cloud-azure-starter-integration-storage-queue
- Z usługi azure-spring-integration-storage-queue do spring-integration-azure-storage-queue
- Z witryny azure-spring-cloud-stream-binder-eventhubs do spring-cloud-azure-stream-binder-eventhubs
- Z azure-spring-cloud-stream-binder-servicebus-* do spring-cloud-azure-stream-binder-servicebus
Zmiany w bibliotece
Zmiany powodujące niezgodność w każdej bibliotece są wprowadzane w następujący sposób.
Od azure-spring-boot-starter do spring-cloud-azure-starter
Ten przewodnik ma pomóc w migracji do rozwiązania spring-cloud-azure-starter z wersji 3 szablonu azure-spring-boot-starter.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany zależności
Niektóre niepotrzebne zależności zostały uwzględnione w starszych artefaktach, które zostały usunięte w nowoczesnych bibliotekach platformy Azure Platformy Azure 4.0 platformy Spring Cloud. Pamiętaj, aby ręcznie dodać usunięte zależności do projektu, aby zapobiec przypadkowej awarii.
W poniższej tabeli przedstawiono usunięte zależności:
Usunięte zależności | opis |
---|---|
org.springframework.boot:spring-boot-starter-validation | Dołącz starter weryfikacji, jeśli chcesz użyć modułu sprawdzania poprawności hibernacji. |
Z usługi azure-spring-boot-starter-active-directory do spring-cloud-azure-starter-active-directory
Ten przewodnik ma pomóc w migracji do rozwiązania spring-cloud-azure-starter-active-directory z wersji 3 usługi azure-spring-boot-starter-active-directory.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany zależności
Niektóre niepotrzebne zależności w starszej wersji artefaktu zostały usunięte od czasu nowoczesnej biblioteki Spring Cloud Azure 4.0. Dodaj te usunięte zależności do projektu, aby zapobiec przypadkowemu awarii.
W poniższej tabeli przedstawiono usunięte zależności:
Usunięte zależności | opis |
---|---|
com.fasterxml.jackson.core:jackson-databind | W razie potrzeby dodaj tę zależność do projektu. |
io.projectreactor.netty:reactor-netty | W razie potrzeby dodaj tę zależność do projektu. |
org.springframework.boot:spring-boot-starter-validation | W razie potrzeby dodaj tę zależność do projektu. |
org.springframework.boot:spring-boot-starter-webflux | W razie potrzeby dodaj tę zależność do projektu. |
Zmiany konfiguracji zestawu SDK
Ta sekcja zawiera zmiany dotyczące dodanych, usuniętych i zmienionych właściwości.
- Poniżej przedstawiono dwa główne kwestie, które należy zwrócić uwagę na:
- Prefiks wszystkich nazw właściwości konfiguracji został zmieniony z
azure.activedirectory
naspring.cloud.azure.active-directory
. - Dodano nową właściwość
spring.cloud.azure.active-directory.enabled
w celu włączenia/wyłączenia funkcji powiązanych z firmą Microsoft. Domyślna wartość tofalse
.
W poniższej tabeli przedstawiono mapowania właściwości między azure-spring-boot-starter-active-directory
i spring-cloud-azure-starter-active-directory
:
Starsze właściwości | Nowoczesne właściwości |
---|---|
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 | Aby uzyskać więcej informacji, zapoznaj się z poniższą tabelą. |
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-cykl życia | spring.cloud.azure.active-directory.jwk-set-cache-cykl życia. |
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 wartości następujących właściwości jest zmieniany z
long
naDuration
:jwt-connect-timeout
jwt-read-timeout
jwk-set-cache-lifespan
jwk-set-cache-refresh-time
.
Następujące właściwości są usuwane:
- azure.activedirectory.allow-telemetry
- azure.activedirectory.user-group.enable-full-list
- azure.activedirectory.graph-base-uri
- azure.activedirectory.graph-membership-uri
Dodawane są następujące właściwości:
- 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
Uwaga
Funkcja elementu azure.activedirectory.graph-membership-uri
została zastąpiona przez 2 właściwości: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
i spring.cloud.azure.active-directory.user-group.use-transitive-members
. Pierwsza właściwość służy do określania nazwy hosta, a druga flaga użycia ścieżki adresu URL: v1.0/me/memberOf
lub v1.0/me/transitiveMemberOf
.
Oto kilka przykładów migracji:
Przykład 1. Przypadek 1
W przypadku starszej wersji: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf
Dla nowoczesnych: 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
Przykład 2. Przypadek 2
W przypadku starszej wersji: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf
Dla nowoczesnych: 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
Zmiany w interfejsie API
W poniższej tabeli przedstawiono mapowania klas z azure-spring-boot-starter-active-directory
do :spring-cloud-azure-starter-active-directory
Starsza klasa | Nowoczesna klasa |
---|---|
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 |
W tej sekcji wymieniono usunięte klasy z usługi azure-spring-boot-starter-active-directory.
Usunięto starszą klasę
- com.azure.spring.aad.webapp.AADHandleConditionalAccessFilter
- com.azure.spring.aad.webapi.validator.AADJwtAudienceValidator
- com.azure.spring.aad.webapi.validator.AADJwtClaimValidator
Z witryny azure-spring-boot-starter-active-directory-b2c do spring-cloud-azure-starter-active-directory-b2c
Ten przewodnik ma pomóc w migracji do spring-cloud-azure-starter-active-directory-b2c z wersji 3 usługi azure-spring-boot-starter-active-directory-b2c.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany zależności
Niektóre niepotrzebne zależności zostały uwzględnione w starszych artefaktach, które zostały usunięte w nowoczesnych bibliotekach platformy Azure Platformy Azure 4.0 platformy Spring Cloud. Pamiętaj, aby ręcznie dodać usunięte zależności do projektu, aby zapobiec przypadkowej awarii.
W poniższej tabeli przedstawiono usunięte zależności:
Usunięte zależności | opis |
---|---|
org.springframework.boot:spring-boot-starter-validation | Dołącz starter weryfikacji, jeśli chcesz użyć modułu sprawdzania poprawności hibernacji. |
Zmiany konfiguracji zestawu SDK
Ta sekcja zawiera zmiany dotyczące dodanych, usuniętych i zmienionych właściwości.
- Poniżej przedstawiono dwa główne kwestie, które należy zwrócić uwagę na:
- Wszystkie nazwy właściwości konfiguracji zmieniły prefiks z
azure.activedirectory.b2c
naspring.cloud.azure.active-directory.b2c
. - Dodano nową właściwość
spring.cloud.azure.active-directory.b2c.enabled
umożliwiającą włączanie/wyłączanie funkcji powiązanych z usługą Azure AD B2C. Wartość domyślna to false.
W poniższej tabeli przedstawiono mapowania właściwości z azure-spring-boot-starter-active-directory-b2c
do :spring-cloud-azure-starter-active-directory-b2c
Starsze właściwości | Nowoczesne właściwości |
---|---|
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-name | spring.cloud.azure.active-directory.b2c.user-name-attribute-name |
Usunięto właściwości z polecenia azure-spring-boot-starter-active-directory-b2c:
- azure.activedirectory.b2c.allow-telemetry
- azure.activedirectory.b2c.tenant
Typ wartości następujących właściwości jest zmieniany z
long
naDuration
:- Limit czasu połączenia jwt
- jwt-read-timeout
Zmiany w interfejsie API
W poniższej tabeli przedstawiono mapowania klas z azure-spring-boot-starter-active-directory-b2c
do :spring-cloud-azure-starter-active-directory-b2c
Starsza klasa | Nowoczesna klasa |
---|---|
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 |
Z usługi azure-spring-boot-starter-cosmos do spring-cloud-azure-starter-data-cosmos
Ten przewodnik ma pomóc w migracji do środowiska spring-cloud-azure-starter-data-cosmos z wersji 3 usługi azure-spring-boot-starter-cosmos.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany konfiguracji zestawu SDK
Wszystkie nazwy właściwości konfiguracji zmieniły prefiks z azure.cosmos
na spring.cloud.azure.cosmos
.
W poniższej tabeli przedstawiono mapowania klas z azure-spring-boot-starter-cosmos
do :spring-cloud-azure-starter-data-cosmos
Starsze właściwości | Nowoczesne właściwości |
---|---|
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 |
Z usługi azure-spring-boot-starter-keyvault-secrets do spring-cloud-azure-starter-keyvault-secrets
Ten przewodnik jest przeznaczony do ułatwienia migracji do środowiska spring-cloud-azure-starter-keyvault-secrets z wersji 3 wpisów tajnych azure-spring-boot-starter-keyvault-secrets.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany konfiguracji zestawu SDK
Ta sekcja zawiera zmiany dotyczące dodanych, usuniętych i zmienionych właściwości.
W poniższej tabeli przedstawiono mapowania właściwości z azure-spring-boot-starter-keyvault-secrets
do :spring-cloud-azure-starter-keyvault-secrets
Starsze właściwości | Nowoczesne właściwości |
---|---|
azure.keyvault.case-sensitive-keys | spring.cloud.azure.keyvault.secret.property-source[n].wielkość liter |
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 i spring.cloud.azure.keyvault.secret.property-source-enabled |
azure.keyvault.order | Nieobsługiwane. Zamiast tego użyj kolejności we właściwości-źródle[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 |
- Usunięto właściwości z wpisów tajnych spring-cloud-azure-starter-keyvault-secrets
azure.keyvault.allow-telemetry azure.keyvault.order
Należy zwrócić uwagę na następujące kwestie:
- Wszystkie nazwy właściwości konfiguracji zmieniły prefiks z
azure.keyvault
naspring.cloud.azure.keyvault.secret
. spring.cloud.azure.keyvault.secret.enabled
Służy do włączania wszystkich funkcji wpisu tajnego usługi Key Vault, dołączania do nich fasoli klienta wpisu tajnego usługi Key Vault (na przykładSecretClient
iSecretAsyncClient
) i dodawaniaKeyVaultPropertySource
elementuConfigurableEnvironment
.spring.cloud.azure.keyvault.secret.property-source-enabled
służy do włączania wszystkichKeyVaultPropertySource
elementów . Zacznie obowiązywać tylko wtedy, gdyspring.cloud.azure.keyvault.secret.enabled=true
.- W przypadku typowych właściwości platformy Azure (takich jak
client
, ,proxy
retry
,credential
,profile
) i Key Vault właściwości (takie jakendpoint
,service-version
). Jeślispring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME
nie skonfigurowano,spring.cloud.azure.keyvault.secret.PROPERTY_NAME
zostanie użyty. spring.cloud.azure.keyvault.secret.property-sources[n].resource
jest specyficzny dla unikatowego zasobu platformy Azure, więc jeśli nie jest skonfigurowany, nie otrzyma wartości z innych miejsc.
Od azure-spring-boot-starter-servicebus-jms do spring-cloud-azure-starter-servicebus-jms
Ten przewodnik ma pomóc w migracji do rozwiązania spring-cloud-azure-starter-servicebus-jms w wersji 3 pakietu azure-spring-boot-starter-servicebus-jms.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany konfiguracji zestawu SDK
Typ konfiguracji zmieniony spring.jms.servicebus.idle-timeout
z long
(milisekund) na Duration
wzorzec umożliwiający czytelność.
Z magazynu azure-spring-boot-starter do spring-cloud-azure-starter-storage-blob
Ten przewodnik ma pomóc w migracji do spring-cloud-azure-starter-storage-blob z wersji 3 magazynu azure-spring-boot-starter-storage.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany konfiguracji zestawu SDK
Wszystkie nazwy właściwości konfiguracji zmieniły prefiks z azure.storage
na spring.cloud.azure.storage.blob
.
W poniższej tabeli przedstawiono mapowania właściwości z azure-spring-boot-starter-storage
do :spring-cloud-azure-starter-storage-blob
Starsze właściwości | Nowoczesne właściwości |
---|---|
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 |
Zmiany w interfejsie API
W poniższej tabeli przedstawiono mapowania klas z azure-spring-boot-starter-storage
do :spring-cloud-azure-starter-storage-blob
Starsza klasa | Nowoczesna klasa |
---|---|
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 |
Z magazynu azure-spring-boot-starter do spring-cloud-azure-starter-storage-file-share
Ten przewodnik ma pomóc w migracji do magazynu spring-cloud-azure-starter-storage-file-share z wersji 3 magazynu azure-spring-boot-starter-storage.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany konfiguracji zestawu SDK
Wszystkie nazwy właściwości konfiguracji zmieniły prefiks z azure.storage
na spring.cloud.azure.storage.fileshare
.
W poniższej tabeli przedstawiono mapowania właściwości z azure-spring-boot-starter-storage
do :spring-cloud-azure-starter-storage-file-share
Starsze właściwości | Nowoczesne właściwości |
---|---|
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 |
Zmiany w interfejsie API
W poniższej tabeli przedstawiono mapowania klas z azure-spring-boot-starter-storage
do :spring-cloud-azure-starter-storage-file-share
Starsza klasa | Nowoczesna klasa |
---|---|
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 |
Z witryny azure-spring-cloud-starter-eventhubs do spring-cloud-azure-starter-integration-eventhubs
Ten przewodnik ma pomóc w migracji do rozwiązania spring-cloud-azure-starter-integration-eventhubs z wersji 2 usługi azure-spring-cloud-starter-eventhubs.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany konfiguracji zestawu SDK
Ważne
Prefiks konfiguracji został zmieniony z spring.cloud.azure.eventhub
na spring.cloud.azure.eventhubs.
Aby uzyskać zmiany w wpisów podrzędnych dla tego prefiksu, zobacz następujące tabele:
W poniższej tabeli przedstawiono mapowania właściwości z azure-spring-cloud-starter-eventhubs
do :spring-cloud-azure-starter-integration-eventhubs
Starsze właściwości | Nowoczesne właściwości |
---|---|
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 |
Na przykład zmień wartość 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}
na:
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}
Zmiany w interfejsie API
- Aby uzyskać informacje o zmianach w adnotacjach odbiornika, zobacz przewodnik <<po migracji biblioteki migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> .
- Upuść
EventHubOperation
element z funkcją subskrybowania przeniesioną do klasyEventHubsMessageListenerContainer
, a funkcja wysyłająca została przeniesiona doEventHubsTemplate
klasy . - Zmień nazwę
EventHubInboundChannelAdapter
naEventHubsInboundChannelAdapter
, aby zachować spójność z usługą usługi Azure Event Hubs. - Zmień konstruktor z
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)
naEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
iEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
. - Zmień
CheckpointConfig
styl tworzenia wystąpienia na prosty konstruktor zamiast stylu kompilacji. - Upuść interfejs API
EventHubOperation#setCheckpointConfig
. Aby ustawić konfigurację punktu kontrolnego dla karty kanału przychodzącego, użytkownicy mogą wywołać metodęEventHubsContainerProperties#setCheckpointConfig
. - Upuść interfejs API
EventHubOperation#setBatchConsumerConfig
. Aby ustawić konfigurację zużywaną wsadowo dla karty kanału przychodzącego, użytkownicy mogą wywoływać dwie metodyEventHubsContainerProperties#getBatch#setMaxSize
iEventHubsContainerProperties#getBatch#setMaxWaitTime
w międzyczasie. - W przypadku trybu przetwarzania wsadowego zmień nazwy nagłówków komunikatów przekonwertowane z komunikatów wsadowych.
- Zmień nagłówek wiadomości z
azure_eventhub_enqueued_time
naazure_eventhubs_batch_converted_enqueued_time
. - Zmień nagłówek wiadomości z
azure_eventhub_offset
naazure_eventhubs_batch_converted_offset
. - Zmień nagłówek wiadomości z
azure_eventhub_sequence_number
naazure_eventhubs_batch_converted_sequence_number
. - Zmień nagłówek wiadomości z
azure_partition_key
naazure_batch_converted_partition_key
.
- Zmień nagłówek wiadomości z
- Podczas publikowania komunikatów w usłudze Event Hubs zignoruj wszystkie nagłówki komunikatów przekonwertowane z komunikatów wsadowych. Nagłówki obejmują:
- 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
BATCH
Tryb punktu kontrolnego działa teraz tylko w trybie przetwarzania wsadowego, który można włączyć, przekazującListenerMode.BATCH
do konstruktora EventHubsInboundChannelAdapter.
W poniższej tabeli przedstawiono mapowania klas z azure-spring-cloud-starter-eventhubs
do :spring-cloud-azure-starter-integration-eventhubs
Starsza klasa | Nowoczesna klasa |
---|---|
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 |
Przykładowy fragment kodu
EventHubsInboundChannelAdapter
przykładowy kod:Starszy kod:
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; } }
Nowoczesny kod:
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
przykładowy kod:Starszy kod:
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; } }
Nowoczesny kod:
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; } }
Z witryny azure-spring-integration-eventhubs do spring-integration-azure-eventhubs
Ten przewodnik ma pomóc w migracji do spring-integration-azure-eventhubs z wersji 2 usługi azure-spring-integration-eventhubs.
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
Zmiany w interfejsie API
- Upuść
EventHubOperation
element z funkcją subskrybowania przeniesioną do klasyEventHubsMessageListenerContainer
, a funkcja wysyłająca została przeniesiona doEventHubsTemplate
klasy . - Zmień nazwę
EventHubInboundChannelAdapter
naEventHubsInboundChannelAdapter
, aby zachować spójność z usługą usługi Azure Event Hubs. - Zmień konstruktor z
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)
naEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
iEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
. - Zmień
CheckpointConfig
styl tworzenia wystąpienia na prosty konstruktor zamiast stylu kompilacji. - Upuść interfejs API
EventHubOperation#setCheckpointConfig
. Aby ustawić konfigurację punktu kontrolnego dla karty kanału przychodzącego, użytkownicy mogą wywołać metodęEventHubsContainerProperties#setCheckpointConfig
. - Upuść interfejs API
EventHubOperation#setBatchConsumerConfig
. Aby ustawić konfigurację zużywaną wsadowo dla karty kanału przychodzącego, użytkownicy mogą wywoływać dwie metodyEventHubsContainerProperties#getBatch#setMaxSize
iEventHubsContainerProperties#getBatch#setMaxWaitTime
w międzyczasie. - W przypadku trybu przetwarzania wsadowego zmień nazwy nagłówków komunikatów przekonwertowane z komunikatów wsadowych.
- Zmień nagłówek wiadomości z
azure_eventhub_enqueued_time
naazure_eventhubs_batch_converted_enqueued_time
. - Zmień nagłówek wiadomości z
azure_eventhub_offset
naazure_eventhubs_batch_converted_offset
. - Zmień nagłówek wiadomości z
azure_eventhub_sequence_number
naazure_eventhubs_batch_converted_sequence_number
. - Zmień nagłówek wiadomości z
azure_partition_key
naazure_batch_converted_partition_key
.
- Zmień nagłówek wiadomości z
- Podczas publikowania komunikatów w usłudze Event Hubs zignoruj wszystkie nagłówki komunikatów przekonwertowane z komunikatów wsadowych. Nagłówki obejmują:
- 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
BATCH
Tryb punktu kontrolnego działa teraz tylko w trybie przetwarzania wsadowego, który można włączyć, przekazującListenerMode.BATCH
do konstruktora EventHubsInboundChannelAdapter.
W poniższej tabeli przedstawiono mapowania klas z azure-spring-integration-eventhubs
do :spring-integration-azure-eventhubs
Starsza klasa | Nowoczesna klasa |
---|---|
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
Ten przewodnik ma pomóc w migracji do rozwiązania spring-cloud-azure-starter-integration-servicebus z wersji 2 pakietu azure-spring-cloud-starter-servicebus.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany konfiguracji zestawu SDK
Dla wszystkich opcji konfiguracji obsługiwanych w programie spring-cloud-azure-starter-integration-servicebus
prefiks pozostaje jako spring.cloud.azure.servicebus
.
W poniższej tabeli przedstawiono mapowania właściwości z azure-spring-cloud-starter-servicebus
do :spring-cloud-azure-starter-integration-servicebus
Starsze właściwości | Nowoczesne właściwości |
---|---|
spring.cloud.azure.resource-group | spring.cloud.azure.servicebus.resource.resource-group |
spring.cloud.azure.servicebus.transport-type | spring.cloud.azure.servicebus.client.transport-type |
spring.cloud.azure.servicebus.retry-options.retry-mode | spring.cloud.azure.servicebus.retry.mode |
spring.cloud.azure.servicebus.retry-options.max-retries | spring.cloud.azure.servicebus.retry.exponential.max-retries lub spring.cloud.azure.servicebus.retry.fixed.max-retries, należy skonfigurować w zależności od spring.cloud.cloud.azure.servicebus.retry.mode=fixed lub wykładniczo |
spring.cloud.azure.servicebus.retry-options.delay | spring.cloud.azure.servicebus.retry.exponential.base-delay lub spring.cloud.azure.servicebus.retry.fixed.delay, należy skonfigurować w zależności od spring.cloud.azure.servicebus.retry.mode=fixed lub wykładniczo |
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 |
Zmiany w interfejsie API
- Upuść
ServiceBusQueueOperation
element iServiceBusTopicOperation
za pomocą funkcji subskrybowania przeniesiono do klasyServiceBusMessageListenerContainer
, a funkcja wysyłająca została przeniesiona doServiceBusTemplate
klasy . - Upuść
ServiceBusQueueInboundChannelAdapter
wartości iServiceBusTopicInboundChannelAdapter
i przenieś funkcje, aby nasłuchiwać jednostki kolejki/tematu usługi Service Bus do klasy ServiceBusInboundChannelAdapter. - Zmień konstruktor z
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
naServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
iServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Zmień konstruktor z
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
naServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
iServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Upuść interfejsy
ServiceBusQueueOperation#setCheckpointConfig
API iServiceBusTopicOperation#setCheckpointConfig
. Aby ustawić konfigurację punktu kontrolnego dla karty kanału przychodzącego, użytkownicy mogą zamiast tego wywołać metodęServiceBusContainerProperties#setAutoComplete
. Wyłączenie trybu automatycznego ukończenia jest równoważneMANUAL
trybowi punktu kontrolnego i włączeniu go spowoduje wyzwolenieRECORD
trybu. - Upuść interfejsy
ServiceBusQueueOperatio#setClientConfig
API iServiceBusTopicOperation#setClientConfig
. Aby skonfigurować bazoweServiceBusProcessorClient
używane przez kartę kanału przychodzącego, użytkownicy mogą zamiast tego użyćServiceBusContainerProperties
. - Zamiast tego porzucaj
CompletableFuture
obsługęServiceBusTemplate
poleceń iDefaultMessageHandler
.Reactor
- Dodaj nowy interfejs API ,
ServiceBusTemplate#setDefaultEntityType
aby określić typ jednostki, który jest wymagany, gdy dla elementu nie podano fasoliPropertiesSupplier<String, ProducerProperties>
ProducerProperties#entityType
. - Upuść nagłówek
AzureHeaders.RAW_ID
wiadomości . Użycie w zamian parametruServiceBusMessageHeaders.MESSAGE_ID
.
W poniższej tabeli przedstawiono mapowania klas z azure-spring-cloud-starter-servicebus
do :spring-cloud-azure-starter-integration-servicebus
Starsza klasa | Nowoczesna klasa |
---|---|
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 |
Przykładowy fragment kodu
ServiceBusInboundChannelAdapter
przykładowy kod:Starszy kod użycia
ServiceBusQueueInboundChannelAdapter
lubServiceBusTopicInboundChannelAdapter
: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; } }
Nowoczesny kod:
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
przykładowy kod:Starszy kod, przyjmując kolejkę jako przykład:
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; } }
Nowoczesny kod:
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
Ten przewodnik ma pomóc w migracji do rozwiązania spring-integration-azure-servicebus z wersji 2 programu azure-spring-integration-servicebus.
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
Zmiany w interfejsie API
- Upuść
ServiceBusQueueOperation
element iServiceBusTopicOperation
za pomocą funkcji subskrybowania przeniesiono do klasyServiceBusMessageListenerContainer
, a funkcja wysyłająca została przeniesiona doServiceBusTemplate
klasy . - Upuść
ServiceBusQueueInboundChannelAdapter
wartości iServiceBusTopicInboundChannelAdapter
i przenieś funkcje, aby nasłuchiwać jednostki kolejki/tematu usługi Service Bus do klasy ServiceBusInboundChannelAdapter. - Zmień konstruktor z
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
naServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
iServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Zmień konstruktor z
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
naServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
iServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Upuść interfejsy
ServiceBusQueueOperation#setCheckpointConfig
API iServiceBusTopicOperation#setCheckpointConfig
. Aby ustawić konfigurację punktu kontrolnego dla karty kanału przychodzącego, użytkownicy mogą zamiast tego wywołać metodęServiceBusContainerProperties#setAutoComplete
. Wyłączenie trybu automatycznego ukończenia jest równoważneMANUAL
trybowi punktu kontrolnego i włączeniu go spowoduje wyzwolenieRECORD
trybu. - Upuść interfejsy
ServiceBusQueueOperation#setClientConfig
API iServiceBusTopicOperation#setClientConfig
. Aby skonfigurować bazoweServiceBusProcessorClient
używane przez kartę kanału przychodzącego, użytkownicy mogą zamiast tego użyćServiceBusContainerProperties
. - Zamiast tego porzucaj
CompletableFuture
obsługęServiceBusTemplate
poleceń iDefaultMessageHandler
.Reactor
- Dodaj nowy interfejs API ,
ServiceBusTemplate#setDefaultEntityType
aby określić typ jednostki, który jest wymagany, gdy dla elementu nie podano fasoliPropertiesSupplier<String, ProducerProperties>
ProducerProperties#entityType
. - Upuść nagłówek
AzureHeaders.RAW_ID
wiadomości . Użycie w zamian parametruServiceBusMessageHeaders.MESSAGE_ID
.
W poniższej tabeli przedstawiono mapowania klas z azure-spring-integration-servicebus
do :spring-integration-azure-servicebus
Starsza klasa | Nowoczesna klasa |
---|---|
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 |
Z usługi azure-spring-cloud-starter-storage-queue do spring-cloud-azure-starter-integration-storage-queue
Ten przewodnik ma pomóc w migracji do kolejki spring-cloud-cloud-azure-starter-integration-storage-queue z wersji 2 kolejki azure-spring-cloud-starter-storage-queue.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany konfiguracji zestawu SDK
Wszystkie nazwy właściwości konfiguracji zmieniły prefiks z spring.cloud.azure.storage
na spring.cloud.azure.storage.queue
.
W poniższej tabeli przedstawiono mapowania właściwości z azure-spring-cloud-starter-storage-queue
do :spring-cloud-azure-starter-integration-storage-queue
Starsze właściwości | Nowoczesne właściwości |
---|---|
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 |
Zmiany w interfejsie API
- Upuść
StorageQueueOperation
i podajStorageQueueTemplate
zamiast tego. - Porzucanie
checkpoint-mode
konfiguracji w programieStorageQueueTemplate
obsługujeMANUAL
tylko tryb .
W poniższej tabeli przedstawiono mapowania klas z azure-spring-cloud-starter-storage-queue
do spring-cloud-azure-starter-integration-storage-queue
.
Starsza klasa | Nowoczesna klasa |
---|---|
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 |
Z usługi azure-spring-integration-storage-queue do spring-integration-azure-storage-queue
Ten przewodnik ma pomóc w migracji do kolejki spring-integration-azure-storage-queue z wersji 2 kolejki azure-spring-integration-storage-queue.
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
Zmiany w interfejsie API
- Upuść
StorageQueueOperation
i podajStorageQueueTemplate
zamiast tego. - Porzucanie
checkpoint-mode
konfiguracji w programieStorageQueueTemplate
obsługujeMANUAL
tylko tryb .
W poniższej tabeli przedstawiono mapowania klas z azure-spring-integration-storage-queue
do spring-integration-azure-storage-queue
.
Starsza klasa | Nowoczesna klasa |
---|---|
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 |
Z witryny azure-spring-cloud-stream-binder-eventhubs do spring-cloud-azure-stream-binder-eventhubs
Ten przewodnik ma pomóc w migracji do rozwiązania spring-cloud-azure-stream-binder-eventhubs z wersji 2 usługi azure-spring-cloud-stream-binder-eventhubs.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany konfiguracji zestawu SDK
Ważne
Prefiks konfiguracji został zmieniony z spring.cloud.azure.eventhub
na spring.cloud.azure.eventhubs.
Ważne
Nazwa typu binder jest zmieniana z: eventhub
na eventhubs
.
Aby uzyskać zmiany w wpisów podrzędnych dla następującego prefiksu, zobacz poniższą tabelę.
W poniższej tabeli przedstawiono mapowania właściwości z azure-spring-cloud-stream-binder-eventhubs
do :spring-cloud-azure-stream-binder-eventhubs
Starsze właściwości | Nowoczesne właściwości |
---|---|
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.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.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.bindings.binding-name.consumer.start-position | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position |
Uwaga
Typ start-position
wartości konfiguracji jest również zmieniany z wyliczenia com.azure.spring.integration.core.api.StartPosition
na wartość dla map
StartPositionProperties
każdej partycji. W związku z com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties
tym klucz jest identyfikatorem partycji, a wartość zawiera właściwości przesunięcia, numeru sekwencji, w kolejce daty i tego, czy włącznie.
Przykłady migracji konfiguracji
Aby użyć parametry połączenia do uwierzytelniania i zmigrować wymienione powyżej właściwości, zmiany konfiguracji są wymienione poniżej:
Starsza konfiguracja:
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
Nowoczesna konfiguracja:
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
Jeśli używasz podmiotów zabezpieczeń zamiast parametry połączenia, w wersjach wcześniejszych niż 4.0 aplikacja najpierw połączy się z usługą Azure Resource Manager (ARM) z podanym podmiotem zabezpieczeń, a następnie pobierze parametry połączenia określonej przestrzeni nazw z usługą ARM. W końcu aplikacja używa pobranego parametry połączenia do nawiązywania połączenia z usługą Azure Event Hubs. W ten sposób należy przyznać podanemu podmiotowi zabezpieczeń rolę Współautor w celu pobrania skojarzonej przestrzeni nazw usługi Azure Event Hubs.
W przypadku usługi Azure Spring Apps 4.0 udostępniamy dwa sposoby wykorzystania podmiotów zabezpieczeń do uwierzytelniania. Nadal używa się podmiotów zabezpieczeń do nawiązywania połączenia z usługą ARM i pobierania parametry połączenia, w których Contributor
rola jest wymagana dla podmiotów zabezpieczeń. Inne wykorzystują podmioty zabezpieczeń do uwierzytelniania w usłudze Microsoft Entra ID, a następnie łączą się bezpośrednio z usługą Azure Event Hubs. W takim przypadku Contributor
rola nie jest już konieczna, podczas gdy inne Data
powiązane role są wymagane do obsługi komunikatów. Aby upewnić się, że podmiot zabezpieczeń otrzymał wystarczające uprawnienia dostępu do zasobu platformy Azure, zobacz Autoryzowanie dostępu za pomocą identyfikatora Entra firmy Microsoft.
W przypadku uwierzytelniania opartego na usłudze ARM na przykład migracja konfiguracji jest wymieniona poniżej, w której przypisana rola nie powinna ulec zmianie:
Starsza konfiguracja:
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}
Uwaga
Dozwolone tenant-id
wartości to: common
, organizations
, consumers
lub identyfikator dzierżawy. Aby uzyskać więcej informacji na temat tych wartości, zobacz sekcję Użycie nieprawidłowego punktu końcowego (konta osobiste i konta organizacji) w sekcji Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje w dzierżawie. Aby uzyskać informacje na temat konwertowania aplikacji z jedną dzierżawą, zobacz Konwertowanie aplikacji z jedną dzierżawą na wielodostępny w usłudze Microsoft Entra ID.
Wymagana jest nowoczesna konfiguracja, właściwości identyfikatora subskrypcji platformy Azure i grupy zasobów:
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}
Uwaga
Dozwolone tenant-id
wartości to: common
, organizations
, consumers
lub identyfikator dzierżawy. Aby uzyskać więcej informacji na temat tych wartości, zobacz sekcję Użycie nieprawidłowego punktu końcowego (konta osobiste i konta organizacji) w sekcji Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje w dzierżawie. Aby uzyskać informacje na temat konwertowania aplikacji z jedną dzierżawą, zobacz Konwertowanie aplikacji z jedną dzierżawą na wielodostępny w usłudze Microsoft Entra ID.
Możesz również przeprowadzić migrację do uwierzytelniania i autoryzacji za pomocą identyfikatora Entra firmy Microsoft bezpośrednio bez wprowadzania objazdu do usługi ARM. Upewnij się, że przyznano podmiotowi zabezpieczeń niezbędne Data
role dla operacji obsługi komunikatów. Poniżej przedstawiono przykłady konfiguracji jednostki usługi i tożsamości zarządzanej:
Z jednostką usługi
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> eventhubs: namespace: ${EVENTHUB_NAMESPACE}
Uwaga
Dozwolone tenant-id
wartości to: common
, organizations
, consumers
lub identyfikator dzierżawy. Aby uzyskać więcej informacji na temat tych wartości, zobacz sekcję Użycie nieprawidłowego punktu końcowego (konta osobiste i konta organizacji) w sekcji Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje w dzierżawie. Aby uzyskać informacje na temat konwertowania aplikacji z jedną dzierżawą, zobacz Konwertowanie aplikacji z jedną dzierżawą na wielodostępny w usłudze Microsoft Entra ID.
Przy użyciu tożsamości zarządzanej
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}
Zmiany w interfejsie API
W poniższej tabeli przedstawiono mapowania klas z azure-spring-cloud-stream-binder-eventhubs
do spring-cloud-azure-stream-binder-eventhubs
.
Starsza klasa | Nowoczesna klasa |
---|---|
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 |
Z azure-spring-cloud-stream-binder-servicebus-* do spring-cloud-azure-stream-binder-servicebus
Ten przewodnik ma pomóc w migracji do spring-cloud-azure-stream-binder-servicebus z wersji 2 elementu azure-spring-cloud-stream-binder-servicebus-queue lub azure-spring-cloud-stream-binder-servicebus-topic.
Aby uzyskać ogólne informacje, użyj następujących linków:
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Korzyści z wprowadzenia i migracji.
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Nazewnictwo zmian .
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM .
- Aby dowiedzieć się, jak obsługiwać uwierzytelnianie w usłudze Spring Cloud Azure 4.0, zobacz sekcję Zmiany uwierzytelniania.
- Aby dowiedzieć się, jak korzystać
spring-boot-properties-migrator
z migracji, zobacz sekcję Konfigurowanie poszczególnych zestawów SDK . - Aby dowiedzieć się więcej na temat globalnych i typowych zmian konfiguracji, zobacz sekcję Globalne konfiguracje .
Zmiany konfiguracji zestawu SDK
Ważne
Starsze biblioteki binder są azure-spring-cloud-stream-binder-servicebus-queue
i azure-spring-cloud-stream-binder-servicebus-topic
, a teraz są one scalane w jeden spring-cloud-azure-stream-binder-servicebus
.
Ważne
Typ binder jest połączony z servicebus-queue
wartościami i servicebus-topic
jako servicebus
.
W poniższej tabeli wymieniono nowe właściwości konfiguracji programu spring-cloud-azure-stream-binder-servicebus
:
Nowoczesne właściwości | opis |
---|---|
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type | Jeśli używasz funkcji wysyłania, musisz ustawić typ jednostki, którą można ustawić na temat lub kolejkę. |
W poniższej tabeli przedstawiono mapowania właściwości z azure-spring-cloud-stream-binder-servicebus-*
do :spring-cloud-azure-stream-binder-servicebus
Starsze właściwości | Nowoczesne właściwości |
---|---|
spring.cloud.azure.resource-group | spring.cloud.azure.servicebus.resource.resource-group |
spring.cloud.azure.servicebus.transport-type | spring.cloud.azure.servicebus.client.transport-type |
spring.cloud.azure.servicebus.retry-options.retry-mode | spring.cloud.azure.servicebus.retry.mode |
spring.cloud.azure.servicebus.retry-options.max-retries | spring.cloud.azure.servicebus.retry.exponential.max-retries lub spring.cloud.azure.servicebus.retry.fixed.max-retries, należy skonfigurować w zależności od spring.cloud.cloud.azure.servicebus.retry.mode=fixed lub wykładniczo |
spring.cloud.azure.servicebus.retry-options.delay | spring.cloud.azure.servicebus.retry.exponential.base-delay lub spring.cloud.azure.servicebus.retry.fixed.delay, należy skonfigurować w zależności od spring.cloud.azure.servicebus.retry.mode=fixed lub wykładniczo |
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.Współbieżności | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.tryb punktów kontrolnych | spring.cloud.stream.servicebus.bindings.binding-name.consumer.autouzupełnij |
spring.cloud.stream.servicebus.topic.bindings.* | spring.cloud.stream.servicebus.bindings.* |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.Współbieżności | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.tryb punktów kontrolnych | spring.cloud.stream.servicebus.bindings.binding-name.consumer.autouzupełnij |
Uwaga
Właściwość współbieżności zostanie zastąpiona przez parametr maxConcurrentSessions, gdy sessionsEnabled to true
i parametr maxConcurrentCalls, gdy sesjeEnabled ma wartość false
.
Uwaga
Włączenie autouzupełniania jest równe RECORD
trybowi punktu kontrolnego MANUAL
i w przeciwnym razie trybowi.
Przykłady migracji konfiguracji
Starsza konfiguracja, używając kolejki jako przykładu:
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
Nowoczesna konfiguracja:
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
Jeśli używasz podmiotów zabezpieczeń zamiast parametry połączenia, w wersjach wcześniejszych niż 4.0 aplikacja najpierw połączy się z usługą Azure Resource Manager (ARM) z podanym podmiotem zabezpieczeń, a następnie pobierze parametry połączenia określonej przestrzeni nazw z usługą ARM. W końcu aplikacja używa pobranego parametry połączenia do nawiązywania połączenia z usługą Azure Service Bus. W ten sposób należy przyznać podanemu podmiotowi zabezpieczeń rolę Współautor w celu pobrania skojarzonej przestrzeni nazw usługi Azure Service Bus.
W przypadku usługi Azure Spring Apps 4.0 udostępniamy dwa sposoby wykorzystania podmiotów zabezpieczeń do uwierzytelniania. Nadal używa się podmiotów zabezpieczeń do nawiązywania połączenia z usługą ARM i pobierania parametry połączenia, w których Contributor
rola jest wymagana dla podmiotów zabezpieczeń. Inne wykorzystują podmioty zabezpieczeń do uwierzytelniania w usłudze Microsoft Entra ID, a następnie łączą się bezpośrednio z usługą Azure Service Bus. W takim przypadku Contributor
rola nie jest już konieczna, podczas gdy inne Data
powiązane role są wymagane do obsługi komunikatów. Aby upewnić się, że podmiot zabezpieczeń otrzymał wystarczające uprawnienia dostępu do zasobu platformy Azure, zobacz Autoryzowanie dostępu za pomocą identyfikatora Entra firmy Microsoft.
W przypadku uwierzytelniania opartego na usłudze ARM na przykład migracja konfiguracji jest wymieniona poniżej, w której przypisana rola nie powinna ulec zmianie:
Starsza konfiguracja:
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}
Uwaga
Dozwolone tenant-id
wartości to: common
, organizations
, consumers
lub identyfikator dzierżawy. Aby uzyskać więcej informacji na temat tych wartości, zobacz sekcję Użycie nieprawidłowego punktu końcowego (konta osobiste i konta organizacji) w sekcji Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje w dzierżawie. Aby uzyskać informacje na temat konwertowania aplikacji z jedną dzierżawą, zobacz Konwertowanie aplikacji z jedną dzierżawą na wielodostępny w usłudze Microsoft Entra ID.
Wymagana jest nowoczesna konfiguracja, właściwości identyfikatora subskrypcji platformy Azure i grupy zasobów:
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}
Uwaga
Dozwolone tenant-id
wartości to: common
, organizations
, consumers
lub identyfikator dzierżawy. Aby uzyskać więcej informacji na temat tych wartości, zobacz sekcję Użycie nieprawidłowego punktu końcowego (konta osobiste i konta organizacji) w sekcji Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje w dzierżawie. Aby uzyskać informacje na temat konwertowania aplikacji z jedną dzierżawą, zobacz Konwertowanie aplikacji z jedną dzierżawą na wielodostępny w usłudze Microsoft Entra ID.
Możesz również przeprowadzić migrację do uwierzytelniania i autoryzacji za pomocą identyfikatora Entra firmy Microsoft bezpośrednio bez wprowadzania objazdu do usługi ARM. Upewnij się, że przyznano podmiotowi zabezpieczeń niezbędne Data
role dla operacji obsługi komunikatów. Poniżej przedstawiono przykłady konfiguracji jednostki usługi i tożsamości zarządzanej:
Z jednostką usługi
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> servicebus: namespace: ${SERVICEBUS_NAMESPACE}
Uwaga
Dozwolone tenant-id
wartości to: common
, organizations
, consumers
lub identyfikator dzierżawy. Aby uzyskać więcej informacji na temat tych wartości, zobacz sekcję Użycie nieprawidłowego punktu końcowego (konta osobiste i konta organizacji) w sekcji Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje w dzierżawie. Aby uzyskać informacje na temat konwertowania aplikacji z jedną dzierżawą, zobacz Konwertowanie aplikacji z jedną dzierżawą na wielodostępny w usłudze Microsoft Entra ID.
Przy użyciu tożsamości zarządzanej
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}
Zmiany w interfejsie API
- Upuść nagłówek
AzureHeaders.RAW_ID
wiadomości . Użycie w zamian parametruServiceBusMessageHeaders.MESSAGE_ID
.
W poniższej tabeli przedstawiono mapowania klas z azure-spring-cloud-stream-binder-eventhubs
do spring-cloud-azure-stream-binder-eventhubs
.
Starsza klasa | Nowoczesna klasa |
---|---|
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
Biblioteka com.azure.spring:azure-spring-cloud-messaging
nie jest gotowa dla wersji 4.0. Funkcja adnotacji odbiornika jest w trakcie ponownego projektowania, więc @AzureMessageListener
adnotacje , @AzureMessageListeners
i @EnableAzureMessaging
nie są obecnie obsługiwane.