Aracılığıyla paylaş


Spring Cloud Azure 4.0 için geçiş kılavuzu

Bu kılavuz, eski Azure Spring kitaplıklarından Spring Cloud Azure 4.0'a geçişe yardımcı olur.

Giriş

Grup kimliği ve yapıt kimliği modern kitaplıkları ve deseni com.azure.spring:spring-cloud-azure-*com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-*veya com.azure.spring:azure-spring-integration-* eski kitaplıkları içeren deseni izleyen kitaplıkları çağıracağız.

Bu kılavuz, modern ve eski kitaplıklar arasındaki benzer yapılandırmalar için yan yana karşılaştırmalara odaklanacaktır.

veya paketi hakkında com.azure.spring:azure-spring-boot-*com.azure.spring:azure-spring-cloud-*com.azure.spring:azure-spring-integration-* bilgi sahibi olduğunuz varsayılır.

Spring Cloud Azure 4.0 kitaplıklarını yeni kullanıyorsanız bu kılavuz yerine Spring Cloud Azure geliştirici kılavuzuna bakın.

Geçiş avantajları

Yeni bir sürümün veya kitaplığın benimsenip benimsenmeyeceğini düşünürken sormanız gereken doğal bir soru bunun avantajlarıdır. Azure olgunlaştıkça ve daha çeşitli bir geliştirici grubu tarafından benimsendikçe, geliştirici üretkenliğini en iyi şekilde desteklemek ve Spring Cloud Azure kitaplıklarının sahip olduğu boşlukları anlamak için desenleri ve uygulamaları öğrenmeye odaklandık.

Spring Cloud Azure kitaplıklarında ifade edilen çeşitli tutarlı geri bildirim alanları vardı. En önemlisi, farklı Azure hizmetlerine yönelik kitaplıkların tüm yapılandırma kümesini etkinleştirmemiş olmasıdır. Ayrıca proje adlandırma, yapıt kimlikleri, sürümler ve yapılandırmaların tutarsızlığı öğrenme eğrisini dik hale getirdi.

Spring Cloud Azure kitaplıklarında geliştirme deneyimini geliştirmek için Spring Cloud Azure kitaplıklarının Spring ekosistemiyle ilgili doğal ve idiomatic bir his yaşamasını sağlamak için bir dizi tasarım yönergesi kullanıma sunulmuştur. Daha fazla ayrıntı, ilgili kişiler için tasarım belgesinde bulunabilir.

Spring Cloud Azure 4.0; Spring Boot, Spring Integration, Spring Cloud Stream vb. gibi farklı Spring projeleriyle tümleştiren kitaplıklar arasında paylaşılan deneyim sağlar. Paylaşılan deneyim şunları içerir:

  • Tüm Spring Cloud Azure 4.0 kitaplıklarını içeren birleşik bir ürün reçetesi.
  • Yapıtlar için tutarlı bir adlandırma kuralı.
  • Kimlik bilgileri, ara sunucu, yeniden deneme, bulut ortamı ve aktarım katmanı ayarlarını yapılandırmanın birleşik bir yolu.
  • Azure Hizmeti veya Azure Hizmet SDK'sının desteklediği tüm kimlik doğrulama yöntemlerini destekleme.

Genel Bakış

Bu geçiş kılavuzu aşağıdaki bölümlerden oluşur:

  • Spring Cloud Azure 4.0 için adlandırma değişiklikleri
  • Yapıt değişiklikleri: yeniden adlandırıldı / eklendi / silindi
  • Bağımlılık değişiklikleri
  • Kimlik doğrulama değişiklikleri
  • Yapılandırma özellikleri
  • API'de hataya neden olan değişiklikler
  • Kitaplık değişiklikleri

Değişiklikleri adlandırma

Tüm Spring Cloud Azure kitaplıklarını çağırmak için tutarlı veya resmi bir ad hiç olmamıştı. Bazıları çağrıldı Azure Spring Boot , bazıları Spring on Azureise. 4.0'dan bu yana proje adını Spring Cloud Azure kullanarak tüm Azure Spring kitaplıklarını temsil etmeye başlamıştık.

Ürün reçetesi

Kitaplıklarımız azure-spring-boot-bomazure-spring-cloud-dependenciesiçin ve olmak üzere iki ürün ağacı gönderirdik, ancak bu iki ürün ağacını 4.0'dan bu yana tek bir ürün reçetesinde spring-cloud-azure-dependenciesbirleştirdik. Bağımlılık yönetiminden dependencyManagement yararlanmak için projenizin bölümüne bir girdi ekleyin.

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

Dekont

Spring Boot 3.x kullanıyorsanız, sürümünü olarak 5.8.0ayarladığınızdan spring-cloud-azure-dependencies emin olun. Sürüm hakkında spring-cloud-azure-dependencies daha fazla bilgi için bkz . Spring Cloud Azure'ın Hangi Sürümünü Kullanmalıyım.

Yapıt değişiklikleri: yeniden adlandırıldı / eklendi / silindi

Grup kimlikleri, modern ve eski Spring Cloud Azure kitaplıkları için aynıdır. Hepsi.com.azure.spring Modern Spring Cloud Azure kitaplıkları için yapıt kimlikleri değişti. Ait olduğu Spring projesine, Spring Boot'a, Spring Integration'a veya Spring Cloud Stream'e göre yapıt kimlikleri deseni , spring-integration-azure-[service]veya spring-cloud-azure-stream-binder-[service]olabilirspring-cloud-azure-starter-[service]. Her birinin eski başlatıcıları, desenini azure-spring-*izleyen bir yapıt kimliğine sahiptir. Bu, modern veya eski başlangıçları kullanıp kullanmadığınızı bir bakışta anlamanıza yardımcı olacak hızlı ve erişilebilir bir araç sağlar.

Spring Cloud Azure 4.0 geliştirme sürecinde, bazı yapıtları yeni adlandırma kurallarına uymaları için yeniden adlandırdık, işlevselliğin daha uygun bir yapıta yerleştirilebilmesi için bazı yapıtları sildik ve bazı senaryolara daha iyi hizmet vermek için bazı yeni yapıtlar ekledik.

Aşağıdaki tabloda eski yapıt kimliği ile modern yapıt kimliği arasındaki eşlemeler gösterilmektedir:

Eski Yapıt Kimliği Modern Yapıt Kimliği Açıklama
azure-spring-boot-starter spring-cloud-azure-starter Bu yapıt, tüm işlevler yeni spring-cloud-azure-starter yapıtla birleştirilerek silindi.
azure-spring-boot-starter-active-directory spring-cloud-azure-starter-active-directory Yapıt yeniden adlandırıldı.
azure-spring-boot-starter-active-directory-b2c spring-cloud-azure-starter-active-directory-b2c Yapıt yeniden adlandırıldı.
azure-spring-boot-starter-cosmos spring-cloud-azure-starter-data-cosmos Yapıt, Spring Data Azure Cosmos DB'yi kullanarak öğesini eklemek dataiçin yeniden adlandırıldı.
azure-spring-boot-starter-keyvault-certificates geçerli değil Bu sürüme dahil değildir, ancak sonraki sürümde desteklenecektir.
azure-spring-boot-starter-keyvault-secrets spring-cloud-azure-starter-keyvault-secrets Yapıt yeniden adlandırıldı.
azure-spring-boot-starter-servicebus-jms spring-cloud-azure-starter-servicebus-jms Yapıt yeniden adlandırıldı.
azure-spring-boot-starter-storage spring-cloud-azure-starter-storage-blob
spring-cloud-azure-starter-storage-file-share
Eski yapıt hem Depolama Blob hem de Dosya Paylaşımı işlevlerini içerir. 4.0 sürümünde spring-cloud-azure-starter-storage-blob ve spring-cloud-azure-starter-storage-file-share şeklinde iki ayrı yapıta eklenmiştir.
azure-spring-boot geçerli değil Bu yapıt, tüm işlevler yeni spring-cloud-azure-autoconfigure yapıtla birleştirilerek silindi.
azure-spring-cloud-autoconfigure geçerli değil Bu yapıt, tüm işlevler yeni spring-cloud-azure-autoconfigure yapıtla birleştirilerek silindi.
azure-spring-cloud-context geçerli değil Bu yapıt, tüm işlevler yeni spring-cloud-azure-autoconfigure ve spring-cloud-azure-resourcemanager yapıtlarla birleştirilerek silindi.
azure-spring-cloud-messaging spring-messaging-azure Mesajlaşma dinleyicisi ek açıklaması bırakıldı.
azure-spring-cloud-starter-cache geçerli değil Bu yapıt silindi, redis kullanmak için spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager ve spring-cloud-azure-starter ekleyin. Kullanım hakkında daha fazla bilgi için bkz . Spring Cloud Azure Redis desteği.
azure-spring-cloud-starter-eventhubs-kafka geçerli değil Bu yapıt silindi; kafka'yı kullanmak için spring kafka, spring-cloud-azure-resourcemanager ve spring-cloud-azure-starter ekleyin. Kullanım hakkında daha fazla bilgi için bkz . Spring Cloud Azure Kafka desteği.
azure-spring-cloud-starter-eventhubs spring-cloud-azure-starter-integration-eventhubs Yapıt, Event Hubs ile Spring Tümleştirmesi'ni kullanarak öğesini eklemek integrationiçin yeniden adlandırıldı.
azure-spring-cloud-starter-servicebus spring-cloud-azure-starter-integration-servicebus Yapıt, Service Bus ile Spring Tümleştirmesi'ni kullanarak öğesini eklemek integrationiçin yeniden adlandırıldı.
azure-spring-cloud-starter-storage-queue spring-cloud-azure-starter-integration-storage-queue yapıtı, Depolama Kuyruğu ile Spring Tümleştirmesi'ni kullanarak öğesini eklemek integrationiçin yeniden adlandırdı.
azure-spring-cloud-storage geçerli değil Bu yapıt, tüm işlevler yeni spring-cloud-azure-autoconfigure yapıtla birleştirilerek silindi.
azure-spring-cloud-stream-binder-eventhubs spring-cloud-azure-stream-binder-eventhubs Bu yapıt, özellikle spring-cloud-azure-stream-binder-eventhubs ve spring-cloud-azure-stream-binder-eventhubs-coreolmak üzere yeni bir tasarım kullanılarak yeniden düzenlenmiştir.
azure-spring-cloud-stream-binder-service-core spring-cloud-azure-stream-binder-servicebus-core Yapıt yeniden adlandırıldı.
azure-spring-cloud-stream-binder-servicebus-queue spring-cloud-azure-stream-binder-servicebus Bu yapıt tüm işlevler yapıtla spring-cloud-azure-stream-binder-servicebus birleştirilerek silindi.
azure-spring-cloud-stream-binder-servicebus-topic spring-cloud-azure-stream-binder-servicebus Bu yapıt tüm işlevler yapıtla spring-cloud-azure-stream-binder-servicebus birleştirilerek silindi.
azure-spring-integration-core spring-integration-azure-core Yapıt yeniden adlandırıldı.
azure-spring-integration-eventhubs spring-integration-azure-eventhubs Yapıtı yeniden adlandırın.
azure-spring-integration-servicebus spring-integration-azure-servicebus Yapıtı yeniden adlandırın.
azure-spring-integration-storage-queue spring-integration-azure-storage-queue Yapıtı yeniden adlandırın.
geçerli değil spring-cloud-azure-aktüatör Yeni eklenen Spring Cloud Azure Aktüatör yapıtı.
geçerli değil spring-cloud-azure-actuator-autoconfigure Aktüatör için otomatik yapılandırma dahil olmak üzere yeni eklenen Spring Cloud Azure Aktüatör Otomatik Yapılandırma yapıtı.
geçerli değil spring-cloud-azure-autoconfigure SDK istemcileri için tüm otomatik yapılandırma, Spring Security desteği, Spring Data desteği ve Spring Integration desteği dahil olmak üzere yeni eklenen Spring Cloud Azure AutoConfigure yapıtı.
geçerli değil spring-cloud-azure-core Tüm temel işlevler dahil olmak üzere yeni eklenen Spring Cloud Azure Core yapıtı.
geçerli değil spring-cloud-azure-resourcemanager Yeni eklenen Resource Manager yapıtı. Meta verileri okumak ve kaynak oluşturmak için Azure Resource Manager kullanan Çekirdek kitaplığıdır.
geçerli değil spring-cloud-azure-service Azure hizmetlerine yönelik özetler de dahil olmak üzere yeni eklenen Spring Cloud Azure Service yapıtı.
geçerli değil spring-cloud-azure-starter-appconfiguration Azure Uygulaması Yapılandırma SDK'sı istemcisini kullanmak için yeni eklenen başlatıcı.
geçerli değil spring-cloud-azure-starter-cosmos Azure Cosmos DB SDK istemcisini kullanmak için yeni eklenen başlangıç.
geçerli değil spring-cloud-azure-starter-eventhubs Azure Event Hubs SDK istemcisini kullanmak için yeni eklenen başlangıç.
geçerli değil spring-cloud-azure-starter-servicebus Azure Service Bus SDK istemcisini kullanmak için yeni eklenen başlangıç.
geçerli değil spring-cloud-azure-starter-storage-blob Azure Depolama Blob SDK istemcisini kullanmak için yeni eklenen başlangıç.
geçerli değil spring-cloud-azure-starter-storage-file-share Azure Depolama Dosya Paylaşımı SDK istemcisini kullanmak için yeni eklenen başlangıç.
geçerli değil spring-cloud-azure-starter-storage-queue Azure Depolama Kuyruk SDK'sı istemcisini kullanmak için yeni eklenen başlangıç.
geçerli değil spring-cloud-azure-starter-stream-eventhubs Azure Event Hubs Spring Cloud Stream Binder'ı kullanmak için yeni eklendi.
geçerli değil spring-cloud-azure-starter-stream-servicebus Azure Service Bus Spring Cloud Stream Bağlayıcısı'nı kullanmak için yeni eklenen başlangıç
geçerli değil spring-cloud-azure-stream-binder-eventhubs-core Azure Event Hubs için yeni eklenen Spring Cloud Stream çekirdek yapıtı.

Bağımlılık değişiklikleri

Bazı gereksiz bağımlılıklar, modern Spring Cloud Azure 4.0 kitaplıklarında kaldırdığımız eski yapıtlara dahil edildi. Kilitlenmeleri önlemek için kaldırılan bağımlılıkları projenize el ile eklediğinizden emin olun.

Bağımlılık değişiklikleri olan kitaplıklar şunlardır:

Kimlik doğrulama değişiklikleri

Spring Cloud Azure 4.0, her Azure Hizmet SDK'sının desteklediği tüm kimlik doğrulama yöntemlerini destekler. Bir genel belirteç kimlik bilgisi yapılandırmanıza ve her hizmet düzeyinde belirteç kimlik bilgilerini sağlamanıza olanak tanır. Ancak Spring Cloud Azure 4.0'ı yapılandırmak için kimlik bilgisi gerekli değildir çünkü Azure Hizmetleri'nde yerel bir geliştirme ortamında veya yönetilen kimlikte depolanan kimlik bilgilerini uygulayabilir. Sorumluya hedef Azure kaynaklarına erişmek için yeterli izin verildiğinden emin olun.

Dekont

Azure mesajlaşma hizmetleriyle etkileşime geçmek için güvenlik sorumlularına roller atarken, Data mesajlaşma işlemlerini yürütmek için ilgili roller gereklidir. Azure Spring Apps Stream Event Hubs / Service Bus Bağlayıcı kitaplıkları için, Contributor otomatik kaynak oluşturma işlevi gerektiğinde rol gereklidir. Daha fazla bilgi için bkz. Azure yerleşik rolleri.

Zincirlenmiş bir kimlik bilgisi olan DefaultAzureCredential fasulye varsayılan olarak otomatik olarak yapılandırılır ve daha fazla kimlik doğrulaması bilgisi belirtilmezse tüm bileşenler tarafından kullanılır. Daha fazla bilgi için Java için Azure Identity istemci kitaplığının DefaultAzureCredential bölümüne bakın.

Yapılandırma özellikleri

Özellikler geçişi

ile spring-boot-properties-migratorkullanırken özellik geçişini düzeltmek için bir additional-spring-configuration-metadata.json dosyası oluşturduk. İlk olarak, aşağıdaki özellik geçiricisini uygulamanıza ekleyin:

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

Veya Gradle kullanıyorsanız:

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

Uygulamayı çalıştırırsanız, artık Spring Cloud Azure tarafından yönetilmeyecek özellikleri belirler. Bir değişiklik varsa, bir uyarıyla özelliği sizin için geçici olarak yeniden eşler. Bir değişiklik yoksa, hata raporu size daha fazla bilgi verir. Her iki durumda da yapılandırmanın güncelleştirilmiş olması ve yapılandırmayı güncelleştirdikten sonra bağımlılığın kaldırılması gerekir.

Devam etmeden önce, tümleştirme testinde geçirdiğiniz özelliklerden birini kullanmadığınızdan bir kez daha denetlemek için IDE'nizin arama özelliğini kullanmak iyi bir fikirdir.

Dekont

Bu değişiklikte birçok yapılandırma özelliğini değiştirdik. öğesini kullanmak spring-boot-properties-migrator geçişinizin sorunsuz bir şekilde ilerlemesine yardımcı olur.

Genel yapılandırmalar

Modern spring-cloud-azure-starter , ad alanında spring.cloud.azuretüm Azure SDK'larına uygulanan özellikleri tanımlamanızı sağlar. Bu özellik eski azure-spring-boot-starteriçinde desteklenmiyordu. Genel yapılandırmalar, aşağıdaki tabloda gösterilen beş kategoriye ayrılabilir:

Önek Açıklama
spring.cloud.azure.client Her Azure SDK'sının altındaki aktarım istemcilerini yapılandırılır.
spring.cloud.azure.credential Microsoft Entra Kimliği ile kimlik doğrulaması yapmayı yapılandırıyor.
spring.cloud.azure.profile Azure bulut ortamını yapılandırıyor.
spring.cloud.azure.proxy Ara sunucu seçeneklerini yapılandırarak tüm Azure SDK istemcilerine uygulayın.
spring.cloud.azure.retry Yeniden deneme seçeneklerini yapılandırarak tüm Azure SDK istemcilerine uygulayın. Yeniden deneme seçenekleri SDK'ların bir bölümünü desteklemektedir; yoktur spring.cloud.azure.cosmos.retry.

Yapılandırmaların tam listesi için bkz . Spring Cloud Azure yapılandırma özellikleri.

Her SDK'yi yapılandırma

SDK düzeyinde yapılandırma seçenekleri hakkında ayrıntılı bilgi için aşağıdaki bağlantıları kullanın:

API'de hataya neden olan değişiklikler

Her kitaplıktaki API hataya neden olan değişiklikler hakkında ayrıntılı bilgi için aşağıdaki bağlantıları kullanın:

Kitaplık değişiklikleri

Her kitaplıkta hataya neden olan değişiklikler aşağıdaki gibi sunulur.

azure-spring-boot-starter'dan spring-cloud-azure-starter'a

Bu kılavuz, azure-spring-boot-starter'ın 3. sürümünden spring-cloud-azure-starter'a geçişte yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

Bağımlılık değişiklikleri

Bazı gereksiz bağımlılıklar, modern Spring Cloud Azure 4.0 kitaplıklarında kaldırdığımız eski yapıtlara dahil edildi. İstenmeyen kilitlenmeyi önlemek için kaldırılan bağımlılıkları projenize el ile eklediğinizden emin olun.

Aşağıdaki tabloda Kaldırılan bağımlılıklar gösterilmektedir:

Bağımlılıklar kaldırıldı Açıklama
org.springframework.boot:spring-boot-starter-validation Hazırda Bekleme Doğrulayıcısı'nı kullanmak istiyorsanız doğrulama başlatıcısını ekleyin.

azure-spring-boot-starter-active-directory'den spring-cloud-azure-starter-active-directory'ye

Bu kılavuz, azure-spring-boot-starter-active-directory sürüm 3'ten spring-cloud-azure-starter-active-directory'ye geçişe yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

Bağımlılık değişiklikleri

Modern Spring Cloud Azure 4.0 kitaplığından bu yana eski yapıttaki bazı gereksiz bağımlılıklar kaldırıldı. İstenmeyen kilitlenmeyi önlemek için bu kaldırılan bağımlılıkları projenize ekleyin.

Aşağıdaki tabloda Kaldırılan bağımlılıklar gösterilmektedir:

Bağımlılıklar kaldırıldı Açıklama
com.fasterxml.jackson.core:jackson-databind Gerekirse bu bağımlılığı projenize ekleyin.
io.projectreactor.netty:reactor-netty Gerekirse bu bağımlılığı projenize ekleyin.
org.springframework.boot:spring-boot-starter-validation Gerekirse bu bağımlılığı projenize ekleyin.
org.springframework.boot:spring-boot-starter-webflux Gerekirse bu bağımlılığı projenize ekleyin.

SDK yapılandırma değişiklikleri

Bu bölüm eklenen, kaldırılan ve değiştirilen özelliklerle ilgili değişiklikleri içerir.

  • Aşağıdaki iki nokta dikkatinizi çekmek için ana noktadır:
  1. Tüm yapılandırma özelliği adlarının ön eki olarak azure.activedirectoryspring.cloud.azure.active-directorydeğiştirildi.
  2. Microsoft Entra ile ilgili özellikleri etkinleştirmek/devre dışı bırakmak için yeni özellik spring.cloud.azure.active-directory.enabled eklenir. Varsayılan değer şudur: false.

Aşağıdaki tabloda ile spring-cloud-azure-starter-active-directoryarasında azure-spring-boot-starter-active-directory özellik eşlemeleri gösterilmektedir:

Eski özellikler Modern özellikler
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 Daha fazla bilgi için aşağıdaki tabloya bakın.
azure.activedirectory.jwt-connect-timeout spring.cloud.azure.active-directory.jwt-connect-timeout.
azure.activedirectory.jwt-read-timeout spring.cloud.azure.active-directory.jwt-read-timeout.
azure.activedirectory.jwt-size-limit spring.cloud.azure.active-directory.jwt-size-limit.
azure.activedirectory.jwk-set-cache-lifespan spring.cloud.azure.active-directory.jwk-set-cache-lifespan.
azure.activedirectory.jwk-set-cache-refresh-time spring.cloud.azure.active-directory.jwk-set-cache-refresh-time
azure.activedirectory.post-logout-redirect-uri spring.cloud.azure.active-directory.post-logout-redirect-uri
azure.activedirectory.session-stateless spring.cloud.azure.active-directory.session-stateless
azure.activedirectory.redirect-uri-template spring.cloud.azure.active-directory.redirect-uri-template
azure.activedirectory.resource-server.claim-to-authority-prefix-map spring.cloud.azure.active-directory.resource-server.claim-to-authority-prefix-map
azure.activedirectory.resource-server.principal-claim-name spring.cloud.azure.active-directory.resource-server.principal-claim-name
azure.activedirectory.tenant-id spring.cloud.azure.active-directory.profile.tenant-id
azure.activedirectory.user-group.allowed-group-ids spring.cloud.azure.active-directory.user-group.allowed-group-ids
azure.activedirectory.user-group.allowed-group-names spring.cloud.azure.active-directory.user-group.allowed-group-names
azure.activedirectory.user-name-attribute spring.cloud.azure.active-directory.user-name-attribute
  • Aşağıdaki özelliklerin değer türü olarak değiştirilir longDuration:

    • jwt-connect-timeout
    • jwt-read-timeout
    • jwk-set-cache-lifespan
    • jwk-set-cache-refresh-time.
  • Aşağıdaki özellikler kaldırılır:

    • azure.activedirectory.allow-telemetry
    • azure.activedirectory.user-group.enable-full-list
    • azure.activedirectory.graph-base-uri
    • azure.activedirectory.graph-membership-uri
  • Aşağıdaki özellikler eklenir:

    • 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

Dekont

işlevinin azure.activedirectory.graph-membership-uri yerini 2 özellik almıştır: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint ve spring.cloud.azure.active-directory.user-group.use-transitive-members. İlk özellik ana bilgisayar adını belirtmek için kullanılır ve ikincisi url yolunu kullanmak için bir bayrak: v1.0/me/memberOf veya v1.0/me/transitiveMemberOf.

Geçişe bazı örnekler aşağıda verilmiştir:

  • Örnek 1. 1\. Durum

    • Eski için: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf

    • Modern için: 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

  • Örnek 2. 2\. Durum

    • Eski için: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf

    • Modern için: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=https://graph.microsoft.com/ + spring.cloud.azure.active-directory.user-group.use-transitive-members=true

API değişiklikleri

Aşağıdaki tabloda ile azure-spring-boot-starter-active-directoryspring-cloud-azure-starter-active-directorysınıf eşlemeleri gösterilmektedir:

Eski sınıf Modern sınıf
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

Bu bölümde azure-spring-boot-starter-active-directory'den kaldırılan sınıflar listelenir.

  • Eski sınıf kaldırıldı

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

azure-spring-boot-starter-active-directory-b2c'den spring-cloud-azure-starter-active-directory-b2c'ye

Bu kılavuz, azure-spring-boot-starter-active-directory-b2c sürüm 3'ten spring-cloud-azure-starter-active-directory-b2c'ye geçişte yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

Bağımlılık değişiklikleri

Bazı gereksiz bağımlılıklar, modern Spring Cloud Azure 4.0 kitaplıklarında kaldırdığımız eski yapıtlara dahil edildi. İstenmeyen kilitlenmeyi önlemek için kaldırılan bağımlılıkları projenize el ile eklediğinizden emin olun.

Aşağıdaki tabloda Kaldırılan bağımlılıklar gösterilmektedir:

Bağımlılıklar kaldırıldı Açıklama
org.springframework.boot:spring-boot-starter-validation Hazırda Bekleme Doğrulayıcısı'nı kullanmak istiyorsanız doğrulama başlatıcısını ekleyin.

SDK yapılandırma değişiklikleri

Bu bölüm eklenen, kaldırılan ve değiştirilen özelliklerle ilgili değişiklikleri içerir.

  • Aşağıdaki iki nokta dikkatinizi çekmek için ana noktadır:
  1. Tüm yapılandırma özellik adları ön eki olarak azure.activedirectory.b2cspring.cloud.azure.active-directory.b2cdeğiştirildi.
  2. Azure AD B2C ile ilgili özellikleri etkinleştirmek/devre dışı bırakmak için yeni özellik spring.cloud.azure.active-directory.b2c.enabled eklenir. Varsayılan değer olarak yanlış kullanılır.

Aşağıdaki tabloda ile olan özellik eşlemeleri gösterilmektedir azure-spring-boot-starter-active-directory-b2cspring-cloud-azure-starter-active-directory-b2c:

Eski özellikler Modern özellikler
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
  • azure-spring-boot-starter-active-directory-b2c'den özellikler kaldırıldı:

    • azure.activedirectory.b2c.allow-telemetry
    • azure.activedirectory.b2c.tenant
  • Aşağıdaki özelliklerin değer türü olarak değiştirilir longDuration:

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

API değişiklikleri

Aşağıdaki tabloda ile azure-spring-boot-starter-active-directory-b2cspring-cloud-azure-starter-active-directory-b2csınıf eşlemeleri gösterilmektedir:

Eski sınıf Modern sınıf
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

azure-spring-boot-starter-cosmos'tan spring-cloud-azure-starter-data-cosmos'a

Bu kılavuz, azure-spring-boot-starter-cosmos sürüm 3'ten spring-cloud-azure-starter-data-cosmos'a geçişte yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

SDK yapılandırma değişiklikleri

Tüm yapılandırma özellik adları ön eki olarak azure.cosmosspring.cloud.azure.cosmosdeğiştirildi.

Aşağıdaki tabloda ile azure-spring-boot-starter-cosmosspring-cloud-azure-starter-data-cosmossınıf eşlemeleri gösterilmektedir:

Eski özellikler Modern özellikler
azure.cosmos.connection-mode spring.cloud.azure.cosmos.connection-mode
azure.cosmos.consistency düzeyi 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

azure-spring-boot-starter-keyvault-secrets'dan spring-cloud-azure-starter-keyvault-secrets'a

Bu kılavuz, azure-spring-boot-starter-keyvault-secrets sürümünün 3. sürümünden spring-cloud-azure-starter-keyvault-secrets geçişine yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

SDK yapılandırma değişiklikleri

Bu bölüm eklenen, kaldırılan ve değiştirilen özelliklerle ilgili değişiklikleri içerir.

Aşağıdaki tabloda ile olan özellik eşlemeleri gösterilmektedir azure-spring-boot-starter-keyvault-secretsspring-cloud-azure-starter-keyvault-secrets:

Eski özellikler Modern özellikler
azure.keyvault.case-sensitive-keys spring.cloud.azure.keyvault.secret.property-source[n].case-sensitive
azure.keyvault.certificate-password spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-password
azure.keyvault.certificate-path spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-path
azure.keyvault.client-id spring.cloud.azure.keyvault.secret.property-source[n].credential.client-id
azure.keyvault.client-key spring.cloud.azure.keyvault.secret.property-source[n].credential.client-secret
azure.keyvault.enabled spring.cloud.azure.keyvault.secret.property-source-enabled ve spring.cloud.azure.keyvault.secret.property-source-enabled
azure.keyvault.order Artık desteklenmiyor. Bunun yerine property-source[n] içinde sırasını kullanı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
  • spring-cloud-azure-starter-keyvault-secrets öğesinden özellikler kaldırıldı

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

Aşağıdaki noktalara dikkat etmelisiniz:

  1. Tüm yapılandırma özellik adları ön eki olarak azure.keyvaultspring.cloud.azure.keyvault.secretdeğiştirildi.
  2. spring.cloud.azure.keyvault.secret.enabled tüm Key Vault Gizli Dizi özelliklerini etkinleştirmek için kullanılır, Key Vault gizli istemci çekirdeklerini yapılandırmayı (ve gibi SecretClientSecretAsyncClient) içerir ve ekleyin KeyVaultPropertySourceConfigurableEnvironment.
  3. spring.cloud.azure.keyvault.secret.property-source-enabled , tüm KeyVaultPropertySource'yi etkinleştirmek için kullanılır. Yalnızca olduğunda spring.cloud.azure.keyvault.secret.enabled=truegeçerlilik kazanır.
  4. Azure ortak özellikleri (, client, proxy, retry, credentialprofile) ve Key Vault özellikleri (, gibiendpointservice-version) için. Yapılandırılmamışsa spring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAMEspring.cloud.azure.keyvault.secret.PROPERTY_NAME kullanılır.
  5. spring.cloud.azure.keyvault.secret.property-sources[n].resource benzersiz bir Azure kaynağına özgü olduğundan, yapılandırılmamışsa başka yerlerden değer alamaz.

azure-spring-boot-starter-servicebus-jms'den spring-cloud-azure-starter-servicebus-jms'ye

Bu kılavuz, azure-spring-boot-starter-servicebus-jms sürümünün 3. sürümünden spring-cloud-azure-starter-servicebus-jms geçişine yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

SDK yapılandırma değişiklikleri

Okunabilirlik için spring.jms.servicebus.idle-timeout (milisaniye) olan yapılandırma türü desen olarak Duration değiştirildilong.

azure-spring-boot-starter-storage'dan spring-cloud-azure-starter-storage-blob'a

Bu kılavuz, azure-spring-boot-starter-storage sürüm 3'ten spring-cloud-azure-starter-storage-blob'a geçişte yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

SDK yapılandırma değişiklikleri

Tüm yapılandırma özellik adları ön eki olarak azure.storagespring.cloud.azure.storage.blobdeğiştirildi.

Aşağıdaki tabloda ile olan özellik eşlemeleri gösterilmektedir azure-spring-boot-starter-storagespring-cloud-azure-starter-storage-blob:

Eski özellikler Modern özellikler
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

API değişiklikleri

Aşağıdaki tabloda ile azure-spring-boot-starter-storagespring-cloud-azure-starter-storage-blobsınıf eşlemeleri gösterilmektedir:

Eski sınıf Modern sınıf
com.azure.spring.autoconfigure.storage.resource.Azure Depolama ProtocolResolver com.azure.spring.core.resource.Azure Depolama BlobProtocolResolver
com.azure.spring.autoconfigure.storage.resource.Blob Depolama Resource com.azure.spring.core.resource. Depolama BlobResource
com.azure.spring.autoconfigure.storage.resource.Azure Depolama ResourcePatternResolver com.azure.spring.core.resource.Azure Depolama BlobProtocolResolver

azure-spring-boot-starter-storage'dan spring-cloud-azure-starter-storage-file-share'e

Bu kılavuz, azure-spring-boot-starter-storage 3 sürümünden spring-cloud-azure-starter-storage-file-share'e geçişte yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

SDK yapılandırma değişiklikleri

Tüm yapılandırma özellik adları ön eki olarak azure.storagespring.cloud.azure.storage.filesharedeğiştirildi.

Aşağıdaki tabloda ile olan özellik eşlemeleri gösterilmektedir azure-spring-boot-starter-storagespring-cloud-azure-starter-storage-file-share:

Eski özellikler Modern özellikler
azure.storage.account-name spring.cloud.azure.storage.fileshare.account-name
azure.storage.account-key spring.cloud.azure.storage.fileshare.account-key
azure.storage.file-endpoint spring.cloud.azure.storage.fileshare.endpoint

API değişiklikleri

Aşağıdaki tabloda ile azure-spring-boot-starter-storagespring-cloud-azure-starter-storage-file-sharesınıf eşlemeleri gösterilmektedir:

Eski sınıf Modern sınıf
com.azure.spring.autoconfigure.storage.resource.Azure Depolama ProtocolResolver com.azure.spring.core.resource.Azure Depolama FileProtocolResolver
com.azure.spring.autoconfigure.storage.resource.File Depolama Resource com.azure.spring.core.resource. Depolama FileResource
com.azure.spring.autoconfigure.storage.resource.Azure Depolama ResourcePatternResolver com.azure.spring.core.resource.Azure Depolama FileProtocolResolver

azure-spring-cloud-starter-eventhubs'dan spring-cloud-azure-starter-integration-eventhubs'a

Bu kılavuz, azure-spring-cloud-starter-eventhubs sürüm 2'den spring-cloud-azure-starter-integration-eventhubs'a geçişe yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

SDK yapılandırma değişiklikleri

Önemli

Yapılandırma ön eki olarak değiştirildi spring.cloud.azure.eventhubspring.cloud.azure.eventhubs.

Bu ön ek için alt girdilerde yapılan değişiklikler için aşağıdaki tablolara bakın:

Aşağıdaki tabloda ile azure-spring-cloud-starter-eventhubsspring-cloud-azure-starter-integration-eventhubsolan özellik eşlemeleri gösterilmektedir:

Eski özellikler Modern özellikler
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

Örneğin, şu şekilde değiştirin:

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}

yerine şunu yazın:

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

API değişiklikleri

  • Dinleyici ek açıklamalarında yapılan değişiklikler için migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> kitaplığının geçiş kılavuzuna <<bakın.
  • Abone işlevi sınıfaEventHubsMessageListenerContainer, gönderen işlev ise öğesine EventHubsTemplatetaşınarak bırakınEventHubOperation.
  • Azure Event Hubs hizmetiyle tutarlı olmak için olarak EventHubsInboundChannelAdapter yeniden adlandırınEventHubInboundChannelAdapter.
  • Oluşturucuyu ve EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)olarak EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) değiştirin.
  • Örnek oluşturma stilini derleme stili yerine basit oluşturucuyla değiştirin CheckpointConfig .
  • EventHubOperation#setCheckpointConfigAPI'yi bırakın. Gelen kanal bağdaştırıcısının denetim noktası yapılandırmasını ayarlamak için kullanıcılar yöntemini EventHubsContainerProperties#setCheckpointConfigçağırabilir.
  • EventHubOperation#setBatchConsumerConfigAPI'yi bırakın. Gelen kanal bağdaştırıcısı için toplu işlem kullanan yapılandırmayı ayarlamak için kullanıcılar iki yöntemi EventHubsContainerProperties#getBatch#setMaxSize çağırabilir ve EventHubsContainerProperties#getBatch#setMaxWaitTime bu arada.
  • Toplu işlem kullanma modu için toplu iletilerden dönüştürülen ileti üst bilgisi adlarını değiştirin.
    • İleti üst bilgisini olarak azure_eventhub_enqueued_timeazure_eventhubs_batch_converted_enqueued_timedeğiştirin.
    • İleti üst bilgisini olarak azure_eventhub_offsetazure_eventhubs_batch_converted_offsetdeğiştirin.
    • İleti üst bilgisini olarak azure_eventhub_sequence_numberazure_eventhubs_batch_converted_sequence_numberdeğiştirin.
    • İleti üst bilgisini olarak azure_partition_keyazure_batch_converted_partition_keydeğiştirin.
  • Event Hubs'a ileti yayımlarken, toplu iletilerden dönüştürülen tüm ileti üst bilgilerini yoksayın. Üst bilgiler şunlardır:
    • 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
  • Denetim BATCH noktası modu yalnızca eventHubsInboundChannelAdapter oluşturucusunda geçirilerek ListenerMode.BATCH etkinleştirilebilen toplu işlem modunda çalışır.

Aşağıdaki tabloda ile azure-spring-cloud-starter-eventhubsspring-cloud-azure-starter-integration-eventhubssınıf eşlemeleri gösterilmektedir:

Eski sınıf Modern sınıf
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

Örnek kod parçacığı

  • EventHubsInboundChannelAdapter örnek kod:

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

    Modern 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 örnek kod:

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

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

azure-spring-integration-eventhubs'dan spring-integration-azure-eventhubs'a

Bu kılavuz, azure-spring-integration-eventhubs sürüm 2'den spring-integration-azure-eventhubs'a geçişte yardımcı olmak için tasarlanmıştır.

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.

API değişiklikleri

  • Abone işlevi sınıfaEventHubsMessageListenerContainer, gönderen işlev ise öğesine EventHubsTemplatetaşınarak bırakınEventHubOperation.
  • Azure Event Hubs hizmetiyle tutarlı olmak için olarak EventHubsInboundChannelAdapter yeniden adlandırınEventHubInboundChannelAdapter.
  • Oluşturucuyu ve EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)olarak EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) değiştirin.
  • Örnek oluşturma stilini derleme stili yerine basit oluşturucuyla değiştirin CheckpointConfig .
  • EventHubOperation#setCheckpointConfigAPI'yi bırakın. Gelen kanal bağdaştırıcısının denetim noktası yapılandırmasını ayarlamak için kullanıcılar yöntemini EventHubsContainerProperties#setCheckpointConfigçağırabilir.
  • EventHubOperation#setBatchConsumerConfigAPI'yi bırakın. Gelen kanal bağdaştırıcısı için toplu işlem kullanan yapılandırmayı ayarlamak için kullanıcılar iki yöntemi EventHubsContainerProperties#getBatch#setMaxSize çağırabilir ve EventHubsContainerProperties#getBatch#setMaxWaitTime bu arada.
  • Toplu işlem kullanma modu için toplu iletilerden dönüştürülen ileti üst bilgisi adlarını değiştirin.
    • İleti üst bilgisini olarak azure_eventhub_enqueued_timeazure_eventhubs_batch_converted_enqueued_timedeğiştirin.
    • İleti üst bilgisini olarak azure_eventhub_offsetazure_eventhubs_batch_converted_offsetdeğiştirin.
    • İleti üst bilgisini olarak azure_eventhub_sequence_numberazure_eventhubs_batch_converted_sequence_numberdeğiştirin.
    • İleti üst bilgisini olarak azure_partition_keyazure_batch_converted_partition_keydeğiştirin.
  • Event Hubs'a ileti yayımlarken, toplu iletilerden dönüştürülen tüm ileti üst bilgilerini yoksayın. Üst bilgiler şunlardır:
    • 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
  • Denetim BATCH noktası modu yalnızca eventHubsInboundChannelAdapter oluşturucusunda geçirilerek ListenerMode.BATCH etkinleştirilebilen toplu işlem modunda çalışır.

Aşağıdaki tabloda ile azure-spring-integration-eventhubs spring-integration-azure-eventhubssınıf eşlemeleri gösterilmektedir:

Eski sınıf Modern sınıf
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

Azure-spring-cloud-starter-servicebus'tan spring-cloud-azure-starter-integration-servicebus'a

Bu kılavuz, azure-spring-cloud-starter-servicebus sürüm 2'den spring-cloud-azure-starter-integration-servicebus'a geçişte yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

SDK yapılandırma değişiklikleri

içinde desteklenen tüm yapılandırma seçenekleri için spring-cloud-azure-starter-integration-servicebusön ek olarak spring.cloud.azure.servicebuskalır.

Aşağıdaki tabloda ile olan özellik eşlemeleri gösterilmektedir azure-spring-cloud-starter-servicebusspring-cloud-azure-starter-integration-servicebus:

Eski özellikler Modern özellikler
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
spring.cloud.azure.servicebus.transport-type spring.cloud.azure.servicebus.client.transport-type
spring.cloud.azure.servicebus.retry-options.retry-mode spring.cloud.azure.servicebus.retry.mode
spring.cloud.azure.servicebus.retry-options.max-retries spring.cloud.azure.servicebus.retry.exponential.max-retries veya spring.cloud.azure.servicebus.retry.fixed.max-retries, spring.cloud.azure.servicebus.retry.mode=fixed veya üstel olarak yapılandırılmalıdır
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay veya spring.cloud.azure.servicebus.retry.fixed.delay, spring.cloud.azure.servicebus.retry.mode=sabit veya üstel olarak yapılandırılmalıdır
spring.cloud.azure.servicebus.retry-options.max-delay spring.cloud.azure.servicebus.retry.exponential.max-delay
spring.cloud.azure.servicebus.retry-options.try-timeout spring.cloud.azure.servicebus.retry.try-timeout

API değişiklikleri

  • Sınıfa taşınan abone işlevi ve ServiceBusTopicOperation gönderme işlevi öğesine ServiceBusTemplatetaşındığında ServiceBusMessageListenerContainer bırakınServiceBusQueueOperation.
  • ve ServiceBusTopicInboundChannelAdapteröğesini bırakın ServiceBusQueueInboundChannelAdapter ve service Bus kuyruğu/konu varlığını dinleme işlevini ServiceBusInboundChannelAdapter'a taşıyın.
  • Oluşturucuyu ve ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)olarak ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) değiştirin.
  • Oluşturucuyu ve ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)olarak ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) değiştirin.
  • API'leri ServiceBusQueueOperation#setCheckpointConfig ve ServiceBusTopicOperation#setCheckpointConfig'yi bırakın. Gelen kanal bağdaştırıcısının denetim noktası yapılandırmasını ayarlamak için kullanıcılar bunun yerine yöntemini ServiceBusContainerProperties#setAutoComplete çağırabilir. Otomatik tamamlama modunu devre dışı bırakmak denetim noktası moduna eşdeğerdir MANUAL ve etkinleştirmek modu tetikler RECORD .
  • API'leri ServiceBusQueueOperatio#setClientConfig ve ServiceBusTopicOperation#setClientConfig'yi bırakın. Gelen kanal bağdaştırıcısı tarafından kullanılan temeli ServiceBusProcessorClient yapılandırmak için kullanıcılar bunu kullanabilir ServiceBusContainerProperties .
  • Bunun yerine ve DefaultMessageHandleriçindeki ServiceBusTemplate desteği Reactor bırakınCompletableFuture.
  • için hiçbir bean PropertiesSupplier&lt;String, ProducerProperties&gt; sağlanmayan varlık türünü belirtmek için yeni API'sini ServiceBusTemplate#setDefaultEntityTypeProducerProperties#entityTypeekleyin.
  • İleti üst bilgisini AzureHeaders.RAW_IDbırakın. Bunun yerine ServiceBusMessageHeaders.MESSAGE_ID kullanın.

Aşağıdaki tabloda ile azure-spring-cloud-starter-servicebusspring-cloud-azure-starter-integration-servicebussınıf eşlemeleri gösterilmektedir:

Eski sınıf Modern sınıf
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

Örnek kod parçacığı

  • ServiceBusInboundChannelAdapter örnek kod:

    veya ServiceBusTopicInboundChannelAdapterkullanmaya ServiceBusQueueInboundChannelAdapter ait eski kod:

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

    Modern 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 örnek kod:

    Örnek olarak kuyruk alan eski kod:

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

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

azure-spring-integration-servicebus'tan spring-integration-azure-servicebus'a

Bu kılavuz, azure-spring-integration-servicebus sürümünün 2. sürümünden spring-integration-azure-servicebus'a geçişte yardımcı olmak için tasarlanmıştır.

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.

API değişiklikleri

  • Sınıfa taşınan abone işlevi ve ServiceBusTopicOperation gönderme işlevi öğesine ServiceBusTemplatetaşındığında ServiceBusMessageListenerContainer bırakınServiceBusQueueOperation.
  • ve ServiceBusTopicInboundChannelAdapteröğesini bırakın ServiceBusQueueInboundChannelAdapter ve service Bus kuyruğu/konu varlığını dinleme işlevini ServiceBusInboundChannelAdapter'a taşıyın.
  • Oluşturucuyu ve ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)olarak ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) değiştirin.
  • Oluşturucuyu ve ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)olarak ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) değiştirin.
  • API'leri ServiceBusQueueOperation#setCheckpointConfig ve ServiceBusTopicOperation#setCheckpointConfig'yi bırakın. Gelen kanal bağdaştırıcısının denetim noktası yapılandırmasını ayarlamak için kullanıcılar bunun yerine yöntemini ServiceBusContainerProperties#setAutoComplete çağırabilir. Otomatik tamamlama modunu devre dışı bırakmak denetim noktası moduna eşdeğerdir MANUAL ve etkinleştirmek modu tetikler RECORD .
  • API'leri ServiceBusQueueOperation#setClientConfig ve ServiceBusTopicOperation#setClientConfig'yi bırakın. Gelen kanal bağdaştırıcısı tarafından kullanılan temeli ServiceBusProcessorClient yapılandırmak için kullanıcılar bunu kullanabilir ServiceBusContainerProperties .
  • Bunun yerine ve DefaultMessageHandleriçindeki ServiceBusTemplate desteği Reactor bırakınCompletableFuture.
  • için hiçbir bean PropertiesSupplier&lt;String, ProducerProperties&gt; sağlanmayan varlık türünü belirtmek için yeni API'sini ServiceBusTemplate#setDefaultEntityTypeProducerProperties#entityTypeekleyin.
  • İleti üst bilgisini AzureHeaders.RAW_IDbırakın. Bunun yerine ServiceBusMessageHeaders.MESSAGE_ID kullanın.

Aşağıdaki tabloda ile azure-spring-integration-servicebusspring-integration-azure-servicebussınıf eşlemeleri gösterilmektedir:

Eski sınıf Modern sınıf
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

azure-spring-cloud-starter-storage-queue'dan spring-cloud-azure-starter-integration-storage-queue'a

Bu kılavuz, azure-spring-cloud-starter-storage-queue sürümünün 2. sürümünden spring-cloud-azure-starter-integration-storage-queue'a geçişe yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

SDK yapılandırma değişiklikleri

Tüm yapılandırma özellik adları ön eki olarak spring.cloud.azure.storagespring.cloud.azure.storage.queuedeğiştirildi.

Aşağıdaki tabloda ile olan özellik eşlemeleri gösterilmektedir azure-spring-cloud-starter-storage-queuespring-cloud-azure-starter-integration-storage-queue:

Eski özellikler Modern özellikler
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

API değişiklikleri

  • Bunun yerine bırakın StorageQueueOperation ve sağlayın StorageQueueTemplate .
  • 'de StorageQueueTemplateyapılandırmayı MANUAL bırakıncheckpoint-mode, yalnızca modu destekler.

Aşağıdaki tabloda ile azure-spring-cloud-starter-storage-queuespring-cloud-azure-starter-integration-storage-queuesınıf eşlemeleri gösterilmektedir.

Eski sınıf Modern sınıf
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.storage.queue.converter. Depolama QueueMessageConverter com.azure.spring.messaging.storage.queue.support.converter. Depolama QueueMessageConverter
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.storage.queue. Depolama QueueTemplate com.azure.spring.storage.queue.core. Depolama QueueTemplate
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.storage.queue.inbound. Depolama QueueMessageSource com.azure.spring.integration.storage.queue.inbound. Depolama QueueMessageSource

azure-spring-integration-storage-queue'dan spring-integration-azure-storage-queue'a

Bu kılavuz, azure-spring-integration-storage-queue sürümünün 2. sürümünden spring-integration-azure-storage-queue'a geçişte yardımcı olmak için tasarlanmıştır.

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.

API değişiklikleri

  • Bunun yerine bırakın StorageQueueOperation ve sağlayın StorageQueueTemplate .
  • 'de StorageQueueTemplateyapılandırmayı MANUAL bırakıncheckpoint-mode, yalnızca modu destekler.

Aşağıdaki tabloda ile azure-spring-integration-storage-queuespring-integration-azure-storage-queuesınıf eşlemeleri gösterilmektedir.

Eski sınıf Modern sınıf
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.storage.queue.converter. Depolama QueueMessageConverter com.azure.spring.messaging.storage.queue.support.converter. Depolama QueueMessageConverter
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.storage.queue. Depolama QueueTemplate com.azure.spring.storage.queue.core. Depolama QueueTemplate
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.storage.queue.inbound. Depolama QueueMessageSource com.azure.spring.integration.storage.queue.inbound. Depolama QueueMessageSource

azure-spring-cloud-stream-binder-eventhubs'dan spring-cloud-azure-stream-binder-eventhubs'a

Bu kılavuz, azure-spring-cloud-stream-binder-eventhubs'ın 2. sürümünden spring-cloud-azure-stream-binder-eventhubs'a geçişe yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

SDK yapılandırma değişiklikleri

Önemli

Yapılandırma ön eki olarak değiştirildi spring.cloud.azure.eventhubspring.cloud.azure.eventhubs.

Önemli

Bağlayıcı türü: olarak eventhubeventhubsyeniden adlandırılır.

Aşağıdaki ön ek için alt girdilerde yapılan değişiklikler için aşağıdaki tabloya bakın.

Aşağıdaki tabloda ile azure-spring-cloud-stream-binder-eventhubsspring-cloud-azure-stream-binder-eventhubsolan özellik eşlemeleri gösterilmektedir:

Eski özellikler Modern özellikler
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

Dekont

Yapılandırmanın start-position değer türü, her bölüm için bir sabit com.azure.spring.integration.core.api.StartPosition listesi olan değeri olarak mapStartPositionProperties da değiştirilir. Bu nedenle, anahtar bölüm kimliğidir ve değer com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties uzaklık, sıra numarası, sıralanan tarih saati ve dahil olup olmadığının özelliklerini içerir.

Yapılandırma geçişi örnekleri

kimlik doğrulaması için bağlantı dizesi kullanmak ve yukarıda bahsedilen özellikleri geçirmek için yapılandırma değişiklikleri aşağıda listelenmiştir:

Eski yapılandırma:

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

Modern yapılandırma:

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

bağlantı dizesi yerine güvenlik sorumluları kullanırsanız, 4.0'ın önceki sürümlerinde uygulama öncelikle sağlanan güvenlik sorumlusuyla Azure Resource Manager'a (ARM) bağlanır ve ardından BELIRTILEN ad alanının bağlantı dizesi ARM ile alır. Sonunda uygulama, Azure Event Hubs'a bağlanmak için alınan bağlantı dizesi kullanır. Bu şekilde, sağlanan güvenlik sorumlusuna ilişkili Azure Event Hubs ad alanını almak için Katkıda Bulunan rolü verilmelidir.

Azure Spring Apps 4.0 için kimlik doğrulaması için güvenlik sorumlularından yararlanmanın iki yolunu sunuyoruz. Biri hala ARM'ye bağlanmak ve sorumlular için rolün gerekli olduğu Contributor bağlantı dizesi almak için sorumluları kullanıyor. Diğeri, Microsoft Entra Id kimlik doğrulaması yapmak ve ardından doğrudan Azure Event Hubs'a bağlanmak için güvenlik sorumlularından yararlanıyor. Bu durumda, Contributor rol artık gerekli değildir, ancak mesajlaşma işlemleri için diğer Data ilgili roller gereklidir. Güvenlik sorumlusuna Azure kaynağına erişmek için yeterli izin verildiğinden emin olmak için bkz . Microsoft Entra Kimliği ile erişimi yetkilendirme.

ARM tabanlı kimlik doğrulaması için, hizmet sorumlusu örnek olarak alındığında, yapılandırma geçişi aşağıda listelenmiştir; burada atanan rol değiştirilmemelidir:

Eski yapılandırma:

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}

Dekont

için tenant-id izin verilen değerler şunlardır: common, organizations, consumersveya kiracı kimliği. Bu değerler hakkında daha fazla bilgi için Hata AADSTS50020 - Kimlik sağlayıcısı kullanıcı hesabı kiracıda yok hatasının Yanlış uç nokta (kişisel ve kuruluş hesapları) kullanıldı bölümüne bakın. Tek kiracılı uygulamanızı dönüştürme hakkında bilgi için bkz . Microsoft Entra Id'de tek kiracılı uygulamayı çok kiracılıya dönüştürme.

Modern yapılandırma, Azure abonelik kimliği ve kaynak grubu özellikleri gereklidir:

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}

Dekont

için tenant-id izin verilen değerler şunlardır: common, organizations, consumersveya kiracı kimliği. Bu değerler hakkında daha fazla bilgi için Hata AADSTS50020 - Kimlik sağlayıcısı kullanıcı hesabı kiracıda yok hatasının Yanlış uç nokta (kişisel ve kuruluş hesapları) kullanıldı bölümüne bakın. Tek kiracılı uygulamanızı dönüştürme hakkında bilgi için bkz . Microsoft Entra Id'de tek kiracılı uygulamayı çok kiracılıya dönüştürme.

Ayrıca ARM'ye sapmadan doğrudan Microsoft Entra Id ile kimlik doğrulaması ve yetkilendirme için geçiş yapabilirsiniz. Güvenlik sorumlusuna mesajlaşma işlemleri için gerekli Data rolleri verin. Hizmet sorumlusunun ve yönetilen kimliğin yapılandırma örnekleri aşağıda listelenmiştir:

  • Hizmet sorumlusuyla

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

Dekont

için tenant-id izin verilen değerler şunlardır: common, organizations, consumersveya kiracı kimliği. Bu değerler hakkında daha fazla bilgi için Hata AADSTS50020 - Kimlik sağlayıcısı kullanıcı hesabı kiracıda yok hatasının Yanlış uç nokta (kişisel ve kuruluş hesapları) kullanıldı bölümüne bakın. Tek kiracılı uygulamanızı dönüştürme hakkında bilgi için bkz . Microsoft Entra Id'de tek kiracılı uygulamayı çok kiracılıya dönüştürme.

  • Yönetilen kimlikle

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

API değişiklikleri

Aşağıdaki tabloda ile azure-spring-cloud-stream-binder-eventhubsspring-cloud-azure-stream-binder-eventhubssınıf eşlemeleri gösterilmektedir.

Eski sınıf Modern sınıf
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

azure-spring-cloud-stream-binder-servicebus-* ile spring-cloud-azure-stream-binder-servicebus

Bu kılavuz, azure-spring-cloud-stream-binder-servicebus-queue veya azure-spring-cloud-stream-binder-servicebus-topic sürüm 2'den spring-cloud-azure-stream-binder-servicebus'a geçişte yardımcı olmak için tasarlanmıştır.

Genel bilgi için aşağıdaki bağlantıları kullanın:

  • 4.0'daki değişikliklere genel bakış için Giriş ve Geçiş avantajları bölümlerine bakın.
  • Proje adlandırmadaki strateji değişiklikleri hakkında daha fazla bilgi edinmek için Adlandırma değişiklikleri bölümüne bakın.
  • Tüm Spring Cloud Azure kitaplıkları için bir ürün reçetesi kullanmayı öğrenmek için ÜRÜN REÇETESI bölümüne bakın.
  • Spring Cloud Azure 4.0'da kimlik doğrulamasının nasıl işleneceğini öğrenmek için Kimlik doğrulaması değişiklikleri bölümüne bakın.
  • Geçiş sırasında nasıl yararlanacağınızı spring-boot-properties-migrator öğrenmek için Her SDK'yı yapılandırma bölümüne bakın.
  • Genel ve yaygın yapılandırma değişiklikleri hakkında daha fazla bilgi edinmek için Genel yapılandırmalar bölümüne bakın.

SDK yapılandırma değişiklikleri

Önemli

Eski bağlayıcı libaries ve azure-spring-cloud-stream-binder-servicebus-topicşeklindedir azure-spring-cloud-stream-binder-servicebus-queue ve artık tek bir spring-cloud-azure-stream-binder-servicebusile birleştirilir.

Önemli

Ciltçi türü ve servicebus-topicservicebusolarak servicebus-queue birleştirilir.

Aşağıdaki tabloda yeni yapılandırma özellikleri spring-cloud-azure-stream-binder-servicebuslistelenir:

Modern özellikler Açıklama
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type Gönderme işlevini kullanıyorsanız konu başlığına veya kuyruğa ayarlayabileceğiniz varlık türünü ayarlamanız gerekir.

Aşağıdaki tabloda ile olan özellik eşlemeleri gösterilmektedir azure-spring-cloud-stream-binder-servicebus-*spring-cloud-azure-stream-binder-servicebus:

Eski özellikler Modern özellikler
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
spring.cloud.azure.servicebus.transport-type spring.cloud.azure.servicebus.client.transport-type
spring.cloud.azure.servicebus.retry-options.retry-mode spring.cloud.azure.servicebus.retry.mode
spring.cloud.azure.servicebus.retry-options.max-retries spring.cloud.azure.servicebus.retry.exponential.max-retries veya spring.cloud.azure.servicebus.retry.fixed.max-retries, spring.cloud.azure.servicebus.retry.mode=fixed veya üstel olarak yapılandırılmalıdır
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay veya spring.cloud.azure.servicebus.retry.fixed.delay, spring.cloud.azure.servicebus.retry.mode=sabit veya üstel olarak yapılandırılmalıdır
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.Eşzamanlılık spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.denetim noktası modu spring.cloud.stream.servicebus.bindings.binding-name.consumer.otomatik tamamlama
spring.cloud.stream.servicebus.topic.bindings.* spring.cloud.stream.servicebus.bindings.*
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.Eşzamanlılık spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.denetim noktası modu spring.cloud.stream.servicebus.bindings.binding-name.consumer.otomatik tamamlama

Dekont

sessionsEnabled olduğunda eşzamanlılık özelliği maxConcurrentSessions ve sessionsEnabled truefalseolduğunda maxConcurrentCalls ile değiştirilir.

Dekont

Otomatik tamamlamanın etkinleştirilmesi denetim noktası moduna ve tersine MANUAL moda eşittirRECORD.

Yapılandırma geçişi örnekleri

Örnek olarak kuyruğa alınan eski yapılandırma:

spring:
  cloud:
    azure:
      servicebus:
        connection-string: ${AZURE_SERVICEBUS_BINDER_CONNECTION_STRING}
    stream:
      function:
        definition: consume;supply
      bindings:
        consume-in-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
        supply-out-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
      servicebus:
        queue:
          bindings:
            consume-in-0:
              consumer:
                checkpoint-mode: MANUAL

Modern yapılandırma:

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

bağlantı dizesi yerine güvenlik sorumluları kullanırsanız, 4.0'ın önceki sürümlerinde uygulama öncelikle sağlanan güvenlik sorumlusuyla Azure Resource Manager'a (ARM) bağlanır ve ardından BELIRTILEN ad alanının bağlantı dizesi ARM ile alır. Sonunda uygulama, Azure Service Bus'a bağlanmak için alınan bağlantı dizesi kullanır. Bu şekilde, sağlanan güvenlik sorumlusuna , ilişkili Azure Service Bus ad alanının alınması için Katkıda Bulunan rolü verilmelidir.

Azure Spring Apps 4.0 için kimlik doğrulaması için güvenlik sorumlularından yararlanmanın iki yolunu sunuyoruz. Biri hala ARM'ye bağlanmak ve sorumlular için rolün gerekli olduğu Contributor bağlantı dizesi almak için sorumluları kullanıyor. Diğeri, Microsoft Entra Kimliği'nde kimlik doğrulaması yapmak ve ardından doğrudan Azure Service Bus'a bağlanmak için güvenlik sorumlularından yararlanıyor. Bu durumda, Contributor rol artık gerekli değildir, ancak mesajlaşma işlemleri için diğer Data ilgili roller gereklidir. Güvenlik sorumlusuna Azure kaynağına erişmek için yeterli izin verildiğinden emin olmak için bkz . Microsoft Entra Kimliği ile erişimi yetkilendirme.

ARM tabanlı kimlik doğrulaması için, hizmet sorumlusu örnek olarak alındığında, yapılandırma geçişi aşağıda listelenmiştir; burada atanan rol değiştirilmemelidir:

Eski yapılandırma:

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}

Dekont

için tenant-id izin verilen değerler şunlardır: common, organizations, consumersveya kiracı kimliği. Bu değerler hakkında daha fazla bilgi için Hata AADSTS50020 - Kimlik sağlayıcısı kullanıcı hesabı kiracıda yok hatasının Yanlış uç nokta (kişisel ve kuruluş hesapları) kullanıldı bölümüne bakın. Tek kiracılı uygulamanızı dönüştürme hakkında bilgi için bkz . Microsoft Entra Id'de tek kiracılı uygulamayı çok kiracılıya dönüştürme.

Modern yapılandırma, Azure abonelik kimliği ve kaynak grubu özellikleri gereklidir:

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}

Dekont

için tenant-id izin verilen değerler şunlardır: common, organizations, consumersveya kiracı kimliği. Bu değerler hakkında daha fazla bilgi için Hata AADSTS50020 - Kimlik sağlayıcısı kullanıcı hesabı kiracıda yok hatasının Yanlış uç nokta (kişisel ve kuruluş hesapları) kullanıldı bölümüne bakın. Tek kiracılı uygulamanızı dönüştürme hakkında bilgi için bkz . Microsoft Entra Id'de tek kiracılı uygulamayı çok kiracılıya dönüştürme.

Ayrıca ARM'ye sapmadan doğrudan Microsoft Entra Id ile kimlik doğrulaması ve yetkilendirme için geçiş yapabilirsiniz. Güvenlik sorumlusuna mesajlaşma işlemleri için gerekli Data rolleri verin. Hizmet sorumlusunun ve yönetilen kimliğin yapılandırma örnekleri aşağıda listelenmiştir:

  • Hizmet sorumlusuyla

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

Dekont

için tenant-id izin verilen değerler şunlardır: common, organizations, consumersveya kiracı kimliği. Bu değerler hakkında daha fazla bilgi için Hata AADSTS50020 - Kimlik sağlayıcısı kullanıcı hesabı kiracıda yok hatasının Yanlış uç nokta (kişisel ve kuruluş hesapları) kullanıldı bölümüne bakın. Tek kiracılı uygulamanızı dönüştürme hakkında bilgi için bkz . Microsoft Entra Id'de tek kiracılı uygulamayı çok kiracılıya dönüştürme.

  • Yönetilen kimlikle

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

API değişiklikleri

  • İleti üst bilgisini AzureHeaders.RAW_IDbırakın. Bunun yerine ServiceBusMessageHeaders.MESSAGE_ID kullanın.

Aşağıdaki tabloda ile azure-spring-cloud-stream-binder-eventhubsspring-cloud-azure-stream-binder-eventhubssınıf eşlemeleri gösterilmektedir.

Eski sınıf Modern sınıf
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

Kitaplık com.azure.spring:azure-spring-cloud-messaging 4.0 için hazır değil. Dinleyici ek açıklamalarının işlevi yeniden tasarlandığından @AzureMessageListener, @AzureMessageListenersve @EnableAzureMessaging ek açıklamaları şu anda desteklenmemektedir.