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-*
starszych bibliotek.
Ten przewodnik koncentruje się na porównaniach równoległych dla podobnych konfiguracji między nowoczesnymi i starszymi bibliotekami.
Przyjęto znajomość pakietu com.azure.spring:azure-spring-boot-*
, com.azure.spring:azure-spring-cloud-*
lub com.azure.spring:azure-spring-integration-*
.
Jeśli dopiero zaczynasz korzystać z bibliotek platformy Spring Cloud Azure 4.0, zapoznaj się z przewodnikiem deweloperów platformy Azure Spring Cloud, a nie w tym przewodniku.
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 dokument projektowy 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.
Przegląd
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 projektu Spring Cloud Azure
do reprezentowania wszystkich bibliotek platformy Azure Spring.
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 BOM od wersji 4.0, spring-cloud-azure-dependencies
. Dodaj wpis w sekcji dependencyManagement
projektu, aby skorzystać z zarządzania zależnościami.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>5.20.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Nuta
Jeśli używasz środowiska Spring Boot 2.x, ustaw wersję spring-cloud-azure-dependencies
na 4.19.0
.
Aby uzyskać więcej informacji na temat wersji używanej dla tego modelu BOM, zobacz Której wersji platformy Spring Cloud platformy Azure należy używać.
Zmiany artefaktów: zmieniono nazwę/dodano/usunięto
Identyfikatory grup są takie same w przypadku nowoczesnych i starszych bibliotek platformy Azure Spring Cloud. Wszystkie są 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 artefaktem spring-cloud-azure-starter . |
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 , wskazującą 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 artefaktem spring-cloud-azure-autoconfigure . |
azure-spring-cloud-autoconfigure | nie dotyczy | Ten artefakt został usunięty ze wszystkimi funkcjami, które można scalić z nowym artefaktem spring-cloud-azure-autoconfigure . |
azure-spring-cloud-context | nie dotyczy | Ten artefakt został usunięty ze wszystkimi funkcjami, które można scalić z nowymi artefaktami spring-cloud-azure-autoconfigure i 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 spring Cloud Azure Redis support. |
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 obsługa platformy Azure Kafka w usłudze Spring Cloud. |
azure-spring-cloud-starter-eventhubs | spring-cloud-azure-starter-integration-eventhubs | Zmieniono nazwę artefaktu, aby dodać integration , wskazującą 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 , wskazującą 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 , wskazującą użycie integracji spring z kolejką magazynu. |
azure-spring-cloud-storage | nie dotyczy | Ten artefakt został usunięty ze wszystkimi funkcjami scalanymi z nowym artefaktem spring-cloud-azure-autoconfigure . |
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 usługi Azure App Configuration. |
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.
Nuta
W przypadku przypisywania ról do podmiotów zabezpieczeń w celu interakcji z usługami obsługi komunikatów platformy Azure Data
powiązanych ról są wymagane do przeprowadzania operacji obsługi komunikatów. W przypadku bibliotek usługi Azure Spring Apps Stream Event Hubs/Service Bus binder Contributor
rola jest wymagana, gdy jest wymagana funkcja automatycznego tworzenia zasobów. Aby uzyskać więcej informacji, zobacz ról wbudowanych platformy Azure.
Poświadczenie łańcuchowe, fasola DefaultAzureCredential
jest domyślnie konfigurowana automatycznie 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 Azure Identity 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
. 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.
Nuta
W tej zmianie zmieniliśmy wiele właściwości konfiguracji. Korzystanie z spring-boot-properties-migrator
ułatwi migrację.
Konfiguracje globalne
Nowoczesna 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 starszych azure-spring-boot-starter
. Konfiguracje globalne można podzielić na pięć kategorii pokazanych w poniższej tabeli:
Przedrostek | 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 ma spring.cloud.azure.cosmos.retry . |
Aby uzyskać pełną listę konfiguracji, zobacz 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 azure-spring-boot-starter-active-directory-b2c do spring-cloud-azure-starter-active-directory-b2c
- z azure-spring-boot-starter-cosmos do spring-cloud-azure-starter-data-cosmos
- z 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-storage do spring-cloud-azure-starter-storage-blob
- z magazynu azure-spring-boot-starter-storage do spring-cloud-azure-starter-storage-file-share
- From azure-spring-cloud-starter-eventhubs to spring-cloud-azure-starter-integration-eventhubs
- Od azure-spring-cloud-starter-servicebus do spring-cloud-azure-starter-integration-servicebus
- z azure-spring-cloud-starter-storage-queue do spring-cloud-azure-starter-integration-storage-queue
- z 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 azure-spring-boot-starter-active-directory-b2c do spring-cloud-azure-starter-active-directory-b2c
- z magazynu azure-spring-boot-starter-storage do spring-cloud-azure-starter-storage-blob
- z magazynu azure-spring-boot-starter-storage do spring-cloud-azure-starter-storage-file-share
- From azure-spring-cloud-starter-eventhubs to spring-cloud-azure-starter-integration-eventhubs
- z usługi azure-spring-integration-eventhubs do rozwiązania spring-integration-azure-eventhubs
- Od azure-spring-cloud-starter-servicebus do spring-cloud-azure-starter-integration-servicebus
- z usługi azure-spring-integration-servicebus do spring-integration-azure-servicebus
- z 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 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 spring-cloud-azure-starter z wersji 3 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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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 spring-cloud-azure-starter-active-directory z wersji 3 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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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 Entra. Wartość domyślna tofalse
.
W poniższej tabeli przedstawiono mapowania właściwości między azure-spring-boot-starter-active-directory
a 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
Nuta
Funkcja 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
W przypadku 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
W przypadku 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 interfejsu API
W poniższej tabeli przedstawiono mapowania klas z azure-spring-boot-starter-active-directory
na 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 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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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
zezwalania na 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
na 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 | spring.cloud.azure.active-directory.b2c.user-name-attribute-name-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 interfejsu API
W poniższej tabeli przedstawiono mapowania klas z azure-spring-boot-starter-active-directory-b2c
na 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 spring-cloud-azure-starter-data-cosmos z wersji 3 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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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
na 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 ma pomóc w migracji do spring-cloud-azure-starter-keyvault-secrets z wersji 3 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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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
na 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 wpisów tajnych usługi Key Vault, dołączania do nich fasoli klienta wpisu tajnego usługi Key Vault (na przykładSecretClient
iSecretAsyncClient
) oraz dodawaniaKeyVaultPropertySource
wConfigurableEnvironment
. -
spring.cloud.azure.keyvault.secret.property-source-enabled
służy do włączania wszystkichKeyVaultPropertySource
. 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 właściwości usługi Key Vault (takie jakendpoint
,service-version
). Jeślispring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME
nie jest skonfigurowana,spring.cloud.azure.keyvault.secret.PROPERTY_NAME
zostanie użyta. -
spring.cloud.azure.keyvault.secret.property-sources[n].resource
jest specyficzny dla unikatowego zasobu platformy Azure, więc jeśli nie jest skonfigurowany, nie uzyska 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 spring-cloud-azure-starter-servicebus-jms z wersji 3 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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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 spring.jms.servicebus.idle-timeout
zmienił się z long
(milisekund) na wzorzec Duration
w celu zapewnienia czytelności.
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 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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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
na 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 interfejsu API
W poniższej tabeli przedstawiono mapowania klas z azure-spring-boot-starter-storage
na 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 spring-cloud-azure-starter-storage-file-share z wersji 3 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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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
na 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 interfejsu API
W poniższej tabeli przedstawiono mapowania klas z azure-spring-boot-starter-storage
na 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 spring-cloud-azure-starter-integration-eventhubs z wersji 2 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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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żny
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
na 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}
do:
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 interfejsu API
- Aby uzyskać informacje o zmianach w adnotacjach odbiornika, zobacz przewodnik migracji biblioteki <<migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging>>.
- Upuść
EventHubOperation
z funkcją subskrybowania przeniesioną do klasyEventHubsMessageListenerContainer
, a funkcja wysyłająca została przeniesiona doEventHubsTemplate
. - 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ń styl tworzenia wystąpienia
CheckpointConfig
na prosty konstruktor zamiast stylu kompilacji. - Usuwanie
EventHubOperation#setCheckpointConfig
interfejsu API. Aby ustawić konfigurację punktu kontrolnego dla karty kanału przychodzącego, użytkownicy mogą wywołać metodęEventHubsContainerProperties#setCheckpointConfig
. - Usuwanie
EventHubOperation#setBatchConsumerConfig
interfejsu API. Aby ustawić konfigurację zużywaną wsadowo dla karty kanału przychodzącego, użytkownicy mogą w międzyczasie wywoływać dwie metodyEventHubsContainerProperties#getBatch#setMaxSize
iEventHubsContainerProperties#getBatch#setMaxWaitTime
. - 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
- Tryb punktu kontrolnego
BATCH
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
na 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 azure-spring-integration-eventhubs.
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM.
Zmiany interfejsu API
- Upuść
EventHubOperation
z funkcją subskrybowania przeniesioną do klasyEventHubsMessageListenerContainer
, a funkcja wysyłająca została przeniesiona doEventHubsTemplate
. - 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ń styl tworzenia wystąpienia
CheckpointConfig
na prosty konstruktor zamiast stylu kompilacji. - Usuwanie
EventHubOperation#setCheckpointConfig
interfejsu API. Aby ustawić konfigurację punktu kontrolnego dla karty kanału przychodzącego, użytkownicy mogą wywołać metodęEventHubsContainerProperties#setCheckpointConfig
. - Usuwanie
EventHubOperation#setBatchConsumerConfig
interfejsu API. Aby ustawić konfigurację zużywaną wsadowo dla karty kanału przychodzącego, użytkownicy mogą w międzyczasie wywoływać dwie metodyEventHubsContainerProperties#getBatch#setMaxSize
iEventHubsContainerProperties#getBatch#setMaxWaitTime
. - 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
- Tryb punktu kontrolnego
BATCH
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
na 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 spring-cloud-azure-starter-integration-servicebus z wersji 2 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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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
W przypadku wszystkich opcji konfiguracji obsługiwanych w spring-cloud-azure-starter-integration-servicebus
prefiks pozostaje spring.cloud.azure.servicebus
.
W poniższej tabeli przedstawiono mapowania właściwości z azure-spring-cloud-starter-servicebus
na 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.servicebustyp transportu | 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.azure.servicebus.retry.mode=stałych lub wykładniczych |
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=stałych lub wykładniczych |
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 interfejsu API
- Upuść
ServiceBusQueueOperation
iServiceBusTopicOperation
z funkcją subskrybowania przeniesioną do klasyServiceBusMessageListenerContainer
, a funkcja wysyłająca została przeniesiona doServiceBusTemplate
. - Upuść
ServiceBusQueueInboundChannelAdapter
iServiceBusTopicInboundChannelAdapter
, a następnie 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 API
ServiceBusQueueOperation#setCheckpointConfig
iServiceBusTopicOperation#setCheckpointConfig
. Aby ustawić konfigurację punktu kontrolnego dla karty kanału przychodzącego, użytkownicy mogą wywołać metodęServiceBusContainerProperties#setAutoComplete
. Aby wyłączyć tryb automatycznego uzupełniania jest odpowiednikiem trybuMANUAL
punktu kontrolnego i włączenia go spowoduje wyzwolenie trybuRECORD
. - Upuść interfejsy API
ServiceBusQueueOperatio#setClientConfig
iServiceBusTopicOperation#setClientConfig
. Aby skonfigurować podstawowąServiceBusProcessorClient
używaną przez adapter kanału przychodzącego, użytkownicy mogą zamiast tego używaćServiceBusContainerProperties
. - Porzucanie obsługi
CompletableFuture
w usługachServiceBusTemplate
iDefaultMessageHandler
obsługujeReactor
. - Dodaj nowy interfejs API
ServiceBusTemplate#setDefaultEntityType
, aby określić typ jednostki, który jest wymagany, gdy dlaProducerProperties#entityType
nie podano fasoliPropertiesSupplier<String, ProducerProperties>
. - Upuść nagłówek wiadomości
AzureHeaders.RAW_ID
. Zamiast tego użyjServiceBusMessageHeaders.MESSAGE_ID
.
W poniższej tabeli przedstawiono mapowania klas z azure-spring-cloud-starter-servicebus
na 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żywania
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 spring-integration-azure-servicebus z wersji 2 azure-spring-integration-servicebus.
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM.
Zmiany interfejsu API
- Upuść
ServiceBusQueueOperation
iServiceBusTopicOperation
z funkcją subskrybowania przeniesioną do klasyServiceBusMessageListenerContainer
, a funkcja wysyłająca została przeniesiona doServiceBusTemplate
. - Upuść
ServiceBusQueueInboundChannelAdapter
iServiceBusTopicInboundChannelAdapter
, a następnie 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 API
ServiceBusQueueOperation#setCheckpointConfig
iServiceBusTopicOperation#setCheckpointConfig
. Aby ustawić konfigurację punktu kontrolnego dla karty kanału przychodzącego, użytkownicy mogą wywołać metodęServiceBusContainerProperties#setAutoComplete
. Aby wyłączyć tryb automatycznego uzupełniania jest odpowiednikiem trybuMANUAL
punktu kontrolnego i włączenia go spowoduje wyzwolenie trybuRECORD
. - Upuść interfejsy API
ServiceBusQueueOperation#setClientConfig
iServiceBusTopicOperation#setClientConfig
. Aby skonfigurować podstawowąServiceBusProcessorClient
używaną przez adapter kanału przychodzącego, użytkownicy mogą zamiast tego używaćServiceBusContainerProperties
. - Porzucanie obsługi
CompletableFuture
w usługachServiceBusTemplate
iDefaultMessageHandler
obsługujeReactor
. - Dodaj nowy interfejs API
ServiceBusTemplate#setDefaultEntityType
, aby określić typ jednostki, który jest wymagany, gdy dlaProducerProperties#entityType
nie podano fasoliPropertiesSupplier<String, ProducerProperties>
. - Upuść nagłówek wiadomości
AzureHeaders.RAW_ID
. Zamiast tego użyjServiceBusMessageHeaders.MESSAGE_ID
.
W poniższej tabeli przedstawiono mapowania klas z azure-spring-integration-servicebus
na 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 spring-cloud-azure-starter-integration-storage-queue z wersji 2 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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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
na 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 interfejsu API
- Upuść
StorageQueueOperation
i podajStorageQueueTemplate
. - Porzucanie konfiguracji
checkpoint-mode
w programieStorageQueueTemplate
obsługuje tylko trybMANUAL
.
W poniższej tabeli przedstawiono mapowania klas z azure-spring-cloud-starter-storage-queue
na 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 spring-integration-azure-storage-queue z wersji 2 azure-spring-integration-storage-queue.
- Aby zapoznać się z omówieniem zmian w wersji 4.0, zobacz sekcje Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- Aby dowiedzieć się, jak używać jednego modelu BOM dla wszystkich bibliotek platformy Azure Spring Cloud, zobacz sekcję BOM.
Zmiany interfejsu API
- Upuść
StorageQueueOperation
i podajStorageQueueTemplate
. - Porzucanie konfiguracji
checkpoint-mode
w programieStorageQueueTemplate
obsługuje tylko trybMANUAL
.
W poniższej tabeli przedstawiono mapowania klas z azure-spring-integration-storage-queue
na 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 spring-cloud-azure-stream-binder-eventhubs z wersji 2 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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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żny
Prefiks konfiguracji został zmieniony z spring.cloud.azure.eventhub
na spring.cloud.azure.eventhubs.
Ważny
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
na 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.binding-name.consumer.max-batch-size | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-size |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-wait-time | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-wait-time |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-mode | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.mode |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-count | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.count |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-interval | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.interval |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.start-position | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position |
Nuta
Typ wartości konfiguracji start-position
jest również zmieniany z wyliczenia com.azure.spring.integration.core.api.StartPosition
na map
StartPositionProperties
dla każdej partycji. W związku z tym klucz jest identyfikatorem partycji, a wartość jest com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties
, która zawiera właściwości przesunięcia, numeru sekwencji, w kolejce daty i tego, czy włącznie.
Przykłady migracji konfiguracji
Aby użyć parametrów 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 parametrów 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 pobranych parametrów połączenia w celu nawiązania połączenia z usługą Azure Event Hubs. W ten sposób należy przyznać podanemu podmiotowi zabezpieczeń rolę współautora
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 parametrów połączenia, w których rola Contributor
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 rola Contributor
nie jest już konieczna, podczas gdy inne Data
powiązane role są wymagane w przypadku operacji 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}
Nuta
Dozwolone wartości dla tenant-id
to: common
, organizations
, consumers
lub identyfikator dzierżawy. Aby uzyskać więcej informacji na temat tych wartości, zobacz sekcję Użyto nieprawidłowego punktu końcowego (kont osobistych i organizacji) sekcji Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje wdzierżawy. Aby uzyskać informacje na temat konwertowania aplikacji z jedną dzierżawą, zobacz Convert single-tenant app to multitenant on 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}
Nuta
Dozwolone wartości dla tenant-id
to: common
, organizations
, consumers
lub identyfikator dzierżawy. Aby uzyskać więcej informacji na temat tych wartości, zobacz sekcję Użyto nieprawidłowego punktu końcowego (kont osobistych i organizacji) sekcji Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje wdzierżawy. Aby uzyskać informacje na temat konwertowania aplikacji z jedną dzierżawą, zobacz Convert single-tenant app to multitenant on 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 podmiot zabezpieczeń musi mieć niezbędne role Data
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}
Nuta
Dozwolone wartości dla tenant-id
to: common
, organizations
, consumers
lub identyfikator dzierżawy. Aby uzyskać więcej informacji na temat tych wartości, zobacz sekcję Użyto nieprawidłowego punktu końcowego (kont osobistych i organizacji) sekcji Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje wdzierżawy. Aby uzyskać informacje na temat konwertowania aplikacji z jedną dzierżawą, zobacz Convert single-tenant app to multitenant on 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 interfejsu API
W poniższej tabeli przedstawiono mapowania klas z azure-spring-cloud-stream-binder-eventhubs
na 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 azure-spring-cloud-stream-binder-servicebus-queue lub azure-spring-cloud-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 Introduction and Migration benefits (Korzyści z migracji w wersji 4.0).
- Aby dowiedzieć się więcej o zmianach strategii w nazewnictwie projektu, zobacz sekcję Zmiany nazewnictwa.
- 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ę Authentication changes (Zmiany uwierzytelniania).
- Aby dowiedzieć się, jak korzystać z
podczas migracji, zobacz sekcję Configure each SDK (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żny
Starsze biblioteki binder są azure-spring-cloud-stream-binder-servicebus-queue
i azure-spring-cloud-stream-binder-servicebus-topic
, a teraz są scalane w jeden spring-cloud-azure-stream-binder-servicebus
.
Ważny
Typ powiązania jest łączony z servicebus-queue
i servicebus-topic
jako servicebus
.
W poniższej tabeli wymieniono nowe właściwości konfiguracji 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-*
na 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.servicebustyp transportu | 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.azure.servicebus.retry.mode=stałych lub wykładniczych |
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=stałych lub wykładniczych |
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łnianie |
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łnianie |
Nuta
Właściwość współbieżności zostanie zastąpiona przez parametr maxConcurrentSessions, gdy sesjeEnabled jest true
, a właściwość maxConcurrentCalls, gdy sessionsEnabled jest false
.
Nuta
Włączenie automatycznego uzupełniania jest równe RECORD
trybie punktu kontrolnego, a w przeciwnym razie tryb MANUAL
.
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 parametrów 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. Na końcu aplikacja używa pobranych parametrów połączenia w celu nawiązania połączenia z usługą Azure Service Bus. W ten sposób należy udzielić podanego podmiotu zabezpieczeń z rolą współautora 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 parametrów połączenia, w których rola Contributor
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 rola Contributor
nie jest już konieczna, podczas gdy inne Data
powiązane role są wymagane w przypadku operacji 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}
Nuta
Dozwolone wartości dla tenant-id
to: common
, organizations
, consumers
lub identyfikator dzierżawy. Aby uzyskać więcej informacji na temat tych wartości, zobacz sekcję Użyto nieprawidłowego punktu końcowego (kont osobistych i organizacji) sekcji Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje wdzierżawy. Aby uzyskać informacje na temat konwertowania aplikacji z jedną dzierżawą, zobacz Convert single-tenant app to multitenant on 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}
Nuta
Dozwolone wartości dla tenant-id
to: common
, organizations
, consumers
lub identyfikator dzierżawy. Aby uzyskać więcej informacji na temat tych wartości, zobacz sekcję Użyto nieprawidłowego punktu końcowego (kont osobistych i organizacji) sekcji Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje wdzierżawy. Aby uzyskać informacje na temat konwertowania aplikacji z jedną dzierżawą, zobacz Convert single-tenant app to multitenant on 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 podmiot zabezpieczeń musi mieć niezbędne role Data
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}
Nuta
Dozwolone wartości dla tenant-id
to: common
, organizations
, consumers
lub identyfikator dzierżawy. Aby uzyskać więcej informacji na temat tych wartości, zobacz sekcję Użyto nieprawidłowego punktu końcowego (kont osobistych i organizacji) sekcji Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje wdzierżawy. Aby uzyskać informacje na temat konwertowania aplikacji z jedną dzierżawą, zobacz Convert single-tenant app to multitenant on 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 interfejsu API
- Upuść nagłówek wiadomości
AzureHeaders.RAW_ID
. Zamiast tego użyjServiceBusMessageHeaders.MESSAGE_ID
.
W poniższej tabeli przedstawiono mapowania klas z azure-spring-cloud-stream-binder-eventhubs
na 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, dlatego adnotacje @AzureMessageListener
, @AzureMessageListeners
i @EnableAzureMessaging
nie są obecnie obsługiwane.