Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это руководство помогает выполнить миграцию в Spring Cloud Azure 4.0 из устаревших библиотек Azure Spring.
Знакомство
Мы вызовем библиотеки, идентификатор группы которых и идентификатор артефакта соответствуют шаблону
В этом руководстве рассматриваются параллельные сравнения аналогичных конфигураций между современными и устаревшими библиотеками.
Предполагается знакомство с com.azure.spring:azure-spring-boot-*пакетом com.azure.spring:azure-spring-cloud-* или com.azure.spring:azure-spring-integration-*.
Если вы не знакомы с библиотеками Spring Cloud Azure версии 4.0, ознакомьтесь с руководством разработчика Spring Cloud Azure вместо этого руководства.
Преимущества миграции
Естественный вопрос, который следует задать при рассмотрении того, следует ли принять новую версию или библиотеку, является его преимуществами. По мере того как Azure зрелый и был принят более разнообразной группой разработчиков, мы были сосредоточены на изучении шаблонов и методик, чтобы обеспечить поддержку производительности разработчиков и понять пробелы, которые имеют библиотеки Spring Cloud Azure.
В Azure библиотеках Spring Cloud было выражено несколько областей согласованной обратной связи. Наиболее важным является то, что библиотеки для разных служб Azure не включили полный набор конфигураций. Кроме того, несоответствие именования проектов, идентификаторов артефактов, версий и конфигураций сделало кривую обучения крутой.
Чтобы улучшить возможности разработки в библиотеках Azure Spring Cloud, был представлен набор рекомендаций по проектированию, чтобы гарантировать, что библиотеки Spring Cloud Azure имеют естественное и идиоматичное чувство в отношении экосистемы Spring. Дополнительные сведения см. в документе design для тех, кто заинтересован.
Spring Cloud Azure 4.0 предоставляет общий интерфейс между библиотеками, интегрирующимися с различными проектами Spring Boot, Spring Boot, Spring Integration, Spring Cloud Stream и т. д. Общий интерфейс включает в себя:
- Унифицированный BOM для включения всех библиотек Spring Cloud Azure 4.0.
- Согласованное соглашение об именовании артефактов.
- Единый способ настройки учетных данных, прокси-сервера, повторных попыток, облачной среды и параметров транспортного слоя.
- Поддержка всех методов проверки подлинности службы Azure или пакета SDK службы Azure поддерживается.
Обзор
Это руководство по миграции состоит из следующих разделов:
- Изменения именования для Spring Cloud Azure 4.0
- Изменения артефакта: переименовано/ добавлено или удалено
- Изменения зависимостей
- Изменения проверки подлинности
- Свойства конфигурации
- Критические изменения API
- Изменения библиотеки
Изменения именования
Никогда не было согласованного или официального имени для вызова всех библиотек Azure Spring Cloud. Некоторые из них были вызваны Azure Spring Boot и некоторые из них Spring on Azure. С 4.0 мы начали использовать имя проекта Spring Cloud Azure для представления всех библиотек Spring Azure.
БОМ
Мы использовались для отправки двух BOM для наших библиотек, azure-spring-boot-bom и azure-spring-cloud-dependencies, но мы объединили эти два BOM в один BOM с 4.0, spring-cloud-azure-dependencies. Добавьте запись в раздел dependencyManagement проекта, чтобы воспользоваться управлением зависимостями.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>7.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Заметка
Если вы используете Spring Boot 4.0.x, обязательно установите версию, указанную в spring-cloud-azure-dependencies, на значение 7.1.0.
Если вы используете Spring Boot 3.5.x, обязательно задайте версию spring-cloud-azure-dependencies на 6.2.0.
Если вы используете Spring Boot 3.1.x-3.5.x, обязательно установите для нее spring-cloud-azure-dependencies значение.5.25.0
Если вы используете Spring Boot 2.x, обязательно установите версию spring-cloud-azure-dependencies на 4.20.0.
Эта ведомость материалов (BOM) должна быть сконфигурирована в <dependencyManagement> разделе файла pom.xml. Это гарантирует, что все зависимости Spring Cloud Azure используют одну и ту же версию.
Дополнительные сведения о версии, используемой для этого BOM, см. в разделе Which Version of Spring Cloud Azure Следует использовать.
Изменения артефакта: переименовано/ добавлено или удалено
Идентификаторы групп одинаковы для современных и устаревших библиотек Spring Cloud Azure. Все они com.azure.spring. Идентификаторы артефактов для современных библиотек Spring Cloud Azure изменились. Согласно проекту Spring, которому он принадлежит, Spring Boot, Spring Integration или Spring Cloud Stream, шаблон идентификаторов артефактов может быть spring-cloud-azure-starter-[service], spring-integration-azure-[service]или spring-cloud-azure-stream-binder-[service]. Устаревшие начальные элементы для каждого из них имеют идентификатор артефакта после azure-spring-*шаблона. Это обеспечивает быстрые и доступные средства, помогающие понять, используете ли вы современные или устаревшие начальные элементы.
В процессе разработки Spring Cloud Azure 4.0 мы переименовали некоторые артефакты, чтобы они соответствовали новым соглашениям об именовании, удалили некоторые артефакты, чтобы функциональные возможности могли быть помещены в более подходящий артефакт, и добавили некоторые новые артефакты, чтобы лучше обслуживать некоторые сценарии.
В следующей таблице показаны сопоставления между устаревшим идентификатором артефакта и современным идентификатором артефакта:
| Устаревший идентификатор артефакта | Идентификатор современного артефакта | Описание |
|---|---|---|
azure-spring-boot-starter |
spring-cloud-azure-starter |
Этот артефакт был удален со всеми функциями, которые будут объединены в новый артефакт spring-cloud-azure-starter. |
azure-spring-boot-starter-active-directory |
spring-cloud-azure-starter-active-directory |
Переименован артефакт. |
azure-spring-boot-starter-active-directory-b2c |
spring-cloud-azure-starter-active-directory-b2c |
Переименован артефакт. |
azure-spring-boot-starter-cosmos |
spring-cloud-azure-starter-data-cosmos |
Переименован артефакт для добавления data, указывающего использование Spring Data Azure Cosmos DB. |
azure-spring-boot-starter-keyvault-certificates |
неприменимо | Не входит в этот выпуск, но будет поддерживаться в более поздней версии. |
azure-spring-boot-starter-keyvault-secrets |
spring-cloud-azure-starter-keyvault-secrets |
Переименован артефакт. |
azure-spring-boot-starter-servicebus-jms |
spring-cloud-azure-starter-servicebus-jms |
Переименован артефакт. |
azure-spring-boot-starter-storage |
spring-cloud-azure-starter-storage-blob spring-cloud-azure-starter-storage-file-share |
Устаревший артефакт содержит функциональные возможности BLOB-объектов хранилища и общей папки, они были сложены в два отдельных артефакта в версии 4.0 и spring-cloud-azure-starter-storage-blobspring-cloud-azure-starter-storage-file-share. |
azure-spring-boot |
неприменимо | Этот артефакт был удален со всеми функциями, которые будут объединены в новый артефакт spring-cloud-azure-autoconfigure. |
azure-spring-cloud-autoconfigure |
неприменимо | Этот артефакт был удален со всеми функциями, которые будут объединены в новый артефакт spring-cloud-azure-autoconfigure. |
azure-spring-cloud-context |
неприменимо | Этот артефакт был удален со всеми функциями, которые будут объединены в новые артефакты spring-cloud-azure-autoconfigure и spring-cloud-azure-resourcemanager артефактов. |
azure-spring-cloud-messaging |
spring-messaging-azure |
Заметка прослушивателя сообщений была удалена. |
azure-spring-cloud-starter-cache |
неприменимо | Этот артефакт был удален, для использования redis, просто добавьте spring-boot-starter-data-redis, spring-boot-starter-cachespring-cloud-azure-resourcemanagerи spring-cloud-azure-starter. Дополнительные сведения об использовании см. в разделе Spring Cloud Azure Redis support. |
azure-spring-cloud-starter-eventhubs-kafka |
неприменимо | Этот артефакт был удален для использования kafka, просто добавьте spring kafka, spring-cloud-azure-resourcemanagerи spring-cloud-azure-starter. Дополнительные сведения об использовании см. в разделе Spring Cloud Azure Поддержка Kafka. |
azure-spring-cloud-starter-eventhubs |
spring-cloud-azure-starter-integration-eventhubs |
Переименован артефакт для добавления integration, указывающего использование Spring Integration с Центрами событий. |
azure-spring-cloud-starter-servicebus |
spring-cloud-azure-starter-integration-servicebus |
Переименован артефакт для добавления integration, указывающего использование Spring Integration с Service Bus. |
azure-spring-cloud-starter-storage-queue |
spring-cloud-azure-starter-integration-storage-queue |
Переименован артефакт для добавления integration, указывающего использование Spring Integration с очередью хранилища. |
azure-spring-cloud-storage |
неприменимо | Этот артефакт был удален со всеми функциями, объединенными в новый артефакт spring-cloud-azure-autoconfigure. |
azure-spring-cloud-stream-binder-eventhubs |
spring-cloud-azure-stream-binder-eventhubs |
Этот артефакт был рефакторингован с помощью нового дизайна, главным образом spring-cloud-azure-stream-binder-eventhubs и spring-cloud-azure-stream-binder-eventhubs-core. |
azure-spring-cloud-stream-binder-service-core |
spring-cloud-azure-stream-binder-servicebus-core |
Переименован артефакт. |
azure-spring-cloud-stream-binder-servicebus-queue |
spring-cloud-azure-stream-binder-servicebus |
Этот артефакт был удален со всеми функциями, которые будут объединены в артефакт spring-cloud-azure-stream-binder-servicebus. |
azure-spring-cloud-stream-binder-servicebus-topic |
spring-cloud-azure-stream-binder-servicebus |
Этот артефакт был удален со всеми функциями, которые будут объединены в артефакт spring-cloud-azure-stream-binder-servicebus. |
azure-spring-integration-core |
spring-integration-azure-core |
Переименован артефакт. |
azure-spring-integration-eventhubs |
spring-integration-azure-eventhubs |
Переименуйте артефакт. |
azure-spring-integration-servicebus |
spring-integration-azure-servicebus |
Переименуйте артефакт. |
azure-spring-integration-storage-queue |
spring-integration-azure-storage-queue |
Переименуйте артефакт. |
| неприменимо | spring-cloud-azure-actuator |
Недавно добавлен артефакт Spring Cloud Azure Actuator. |
| неприменимо | spring-cloud-azure-actuator-autoconfigure |
Добавлен новый артефакт AutoConfigure Spring Cloud Azure Actuator AutoConfigure, включая автонастройку для актатора. |
| неприменимо | spring-cloud-azure-autoconfigure |
Недавно добавлен артефакт Spring Cloud Azure AutoConfigure, включая всю автоматическую настройку для клиентов SDK, поддержку Spring Security, поддержку Spring Data и поддержку Spring Integration. |
| неприменимо | spring-cloud-azure-core |
Недавно добавлен артефакт Spring Cloud Azure Core, включая все основные функциональные возможности. |
| неприменимо | spring-cloud-azure-resourcemanager |
Добавлен новый артефакт Resource Manager. Это базовая библиотека с помощью Azure Resource Manager для чтения метаданных и создания ресурсов. |
| неприменимо | spring-cloud-azure-service |
Недавно добавлен артефакт службы Spring Cloud Azure, включая абстракции для служб Azure. |
| неприменимо | spring-cloud-azure-starter-appconfiguration |
Добавлен новый начальный элемент для использования клиента пакета SDK Azure App Configuration. |
| неприменимо | spring-cloud-azure-starter-cosmos |
Добавлен новый начальный элемент для использования клиента пакета SDK Azure Cosmos DB. |
| неприменимо | spring-cloud-azure-starter-eventhubs |
Добавлен новый начальный код для использования клиента пакета SDK Azure Event Hubs. |
| неприменимо | spring-cloud-azure-starter-servicebus |
Добавлен новый начальный элемент для использования клиента пакета SDK Azure Service Bus. |
| неприменимо | spring-cloud-azure-starter-storage-blob |
Добавлен новый начальный элемент для использования клиента пакета SDK для BLOB-объектов Azure Storage. |
| неприменимо | spring-cloud-azure-starter-storage-file-share |
Добавлен новый начальный элемент для использования клиента пакета SDK для файлового ресурса Azure Storage. |
| неприменимо | spring-cloud-azure-starter-storage-queue |
Добавлен новый начальный элемент для использования клиента пакета SDK для очередей Azure Storage. |
| неприменимо | spring-cloud-azure-starter-stream-eventhubs |
Добавлен новый начальный модуль для использования Azure Event Hubs Spring Cloud Stream Binder. |
| неприменимо | spring-cloud-azure-starter-stream-servicebus |
Добавлен новый начальный модуль для использования Azure Service Bus Spring Cloud Stream Binder |
| неприменимо | spring-cloud-azure-stream-binder-eventhubs-core |
Добавлен новый артефакт Core Spring Cloud Stream для Azure Event Hubs. |
Изменения зависимостей
Некоторые ненужные зависимости были включены в устаревшие артефакты, которые мы удалили в современных библиотеках Spring Cloud Azure 4.0. Обязательно добавьте удаленные зависимости вручную в проект, чтобы предотвратить сбои.
К библиотекам, которые имеют изменения зависимостей, относятся:
spring-cloud-azure-starterspring-cloud-azure-starter-active-directoryspring-cloud-azure-starter-active-directory-b2c
Изменения проверки подлинности
Spring Cloud Azure 4.0 поддерживает все методы проверки подлинности, поддерживаемые каждым пакетом SDK службы Azure. Он позволяет настроить учетные данные глобального токена, а также предоставить учетные данные маркера на каждом уровне обслуживания. Но учетные данные не требуются для настройки Spring Cloud Azure 4.0, так как они могут применять учетные данные, хранящиеся в локальной среде разработки или управляемом удостоверении в службах Azure. Просто убедитесь, что субъект получил достаточно разрешений для доступа к целевым Azure ресурсам.
Заметка
При назначении ролей субъектам безопасности для взаимодействия со службами обмена сообщениями Azure Data связанные роли требуются для проведения операций обмена сообщениями. Для библиотек Azure Spring Apps Stream Event Hubs / Service Bus Binder роль Contributor требуется, если требуется функция автоматического создания ресурсов. Дополнительные сведения см. в разделе Azure встроенные роли.
Учетные данные с цепочкой, DefaultAzureCredential bean настроены автоматически по умолчанию и будут использоваться всеми компонентами, если не указана дополнительная информация о проверке подлинности. Дополнительные сведения см. в разделе DefaultAzureCredential клиентской библиотеки Azure Identity для Java.
Свойства конфигурации
Миграция свойств
Мы создали additional-spring-configuration-metadata.json файл, чтобы сгладить миграцию свойств при использовании spring-boot-properties-migrator. Сначала добавьте в приложение следующий перенос свойств:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
Или, если вы используете Gradle:
runtime("org.springframework.boot:spring-boot-properties-migrator")
Если вы запускаете приложение, он определит свойства, которые больше не управляются Spring Cloud Azure. Если есть замена, он временно переназначит свойство для вас с предупреждением. Если нет замены, отчет об ошибке даст вам дополнительные сведения. В любом случае необходимо обновить конфигурацию и удалить зависимость после обновления конфигурации.
Прежде чем перейти, рекомендуется использовать функцию поиска интегрированной среды разработки для двойной проверки того, что вы не используете одно из свойств, перенесенных в тесте интеграции.
Заметка
Мы изменили множество свойств конфигурации в этом изменении. Использование spring-boot-properties-migrator поможет сгладить миграцию.
Глобальные конфигурации
Современная spring-cloud-azure-starter позволяет определять свойства, которые применяются ко всем Azure SDKs в пространстве имен spring.cloud.azure. Эта функция не поддерживается в устаревшей azure-spring-boot-starter. Глобальные конфигурации можно разделить на пять категорий, показанных в следующей таблице:
| Приставка | Описание |
|---|---|
spring.cloud.azure.client |
Настраивает клиенты транспорта под каждым Azure SDK. |
spring.cloud.azure.credential |
Настройка проверки подлинности с помощью Microsoft Entra ID. |
spring.cloud.azure.profile |
Настраивает облачную среду Azure. |
spring.cloud.azure.proxy |
Настраивает параметры прокси-сервера, применяются ко всем Azure SDK клиентам. |
spring.cloud.azure.retry |
Настраивает параметры повторных попыток, применяются ко всем Azure SDK клиентам. Параметры повторных попыток поддерживают часть пакетов SDK, spring.cloud.azure.cosmos.retryнет. |
Полный список конфигураций см. в разделе Spring Cloud Azure свойства конфигурации.
Настройка каждого пакета SDK
Дополнительные сведения о параметрах конфигурации на уровне пакета SDK см. по следующим ссылкам:
-
От
azure-spring-boot-starter-active-directoryдоspring-cloud-azure-starter-active-directory -
От
azure-spring-boot-starter-active-directory-b2cдоspring-cloud-azure-starter-active-directory-b2c -
От
azure-spring-boot-starter-cosmosдоspring-cloud-azure-starter-data-cosmos -
От
azure-spring-boot-starter-keyvault-secretsдоspring-cloud-azure-starter-keyvault-secrets -
От
azure-spring-boot-starter-servicebus-jmsдоspring-cloud-azure-starter-servicebus-jms -
От
azure-spring-boot-starter-storageдоspring-cloud-azure-starter-storage-blob -
От
azure-spring-boot-starter-storageдоspring-cloud-azure-starter-storage-file-share -
От
azure-spring-cloud-starter-eventhubsдоspring-cloud-azure-starter-integration-eventhubs -
От
azure-spring-cloud-starter-servicebusдоspring-cloud-azure-starter-integration-servicebus -
От
azure-spring-cloud-starter-storage-queueдоspring-cloud-azure-starter-integration-storage-queue -
От
azure-spring-cloud-stream-binder-eventhubsдоspring-cloud-azure-stream-binder-eventhubs -
От
azure-spring-cloud-stream-binder-servicebus-*доspring-cloud-azure-stream-binder-servicebus
Критические изменения API
Дополнительные сведения о критических изменениях API в каждой библиотеке см. по следующим ссылкам:
-
От
azure-spring-boot-starter-active-directoryдоspring-cloud-azure-starter-active-directory -
От
azure-spring-boot-starter-active-directory-b2cдоspring-cloud-azure-starter-active-directory-b2c -
От
azure-spring-boot-starter-storageдоspring-cloud-azure-starter-storage-blob -
От
azure-spring-boot-starter-storageдоspring-cloud-azure-starter-storage-file-share -
От
azure-spring-cloud-starter-eventhubsдоspring-cloud-azure-starter-integration-eventhubs -
От
azure-spring-integration-eventhubsдоspring-integration-azure-eventhubs -
От
azure-spring-cloud-starter-servicebusдоspring-cloud-azure-starter-integration-servicebus -
От
azure-spring-integration-servicebusдоspring-integration-azure-servicebus -
От
azure-spring-cloud-starter-storage-queueдоspring-cloud-azure-starter-integration-storage-queue -
От
azure-spring-integration-storage-queueдоspring-integration-azure-storage-queue -
От
azure-spring-cloud-stream-binder-eventhubsдоspring-cloud-azure-stream-binder-eventhubs -
От
azure-spring-cloud-stream-binder-servicebus-*доspring-cloud-azure-stream-binder-servicebus
Изменения библиотеки
Критические изменения в каждой библиотеке представлены следующим образом.
От azure-spring-boot-starter до spring-cloud-azure-starter
Это руководство предназначено для поддержки миграции spring-cloud-azure-starter с версии 3.azure-spring-boot-starter
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения зависимостей
Некоторые ненужные зависимости были включены в устаревшие артефакты, которые мы удалили в современных библиотеках Spring Cloud Azure 4.0. Обязательно добавьте удаленные зависимости вручную в проект, чтобы предотвратить непреднамеренный сбой.
В следующей таблице показаны удаленные зависимости:
| Удалены зависимости | Описание |
|---|---|
org.springframework.boot:spring-boot-starter-validation |
Включите начальный модуль проверки, если вы хотите использовать проверяющий элемент Hibernate. |
От azure-spring-boot-starter-active-directory до spring-cloud-azure-starter-active-directory
Это руководство предназначено для поддержки миграции spring-cloud-azure-starter-active-directory с версии 3.azure-spring-boot-starter-active-directory
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения зависимостей
Некоторые ненужные зависимости в устаревшем артефакте были удалены с современной библиотеки Spring Cloud Azure 4.0. Добавьте эти удаленные зависимости в проект, чтобы предотвратить непреднамеренный сбой.
В следующей таблице показаны удаленные зависимости:
| Удалены зависимости | Описание |
|---|---|
com.fasterxml.jackson.core:jackson-databind |
При необходимости добавьте эту зависимость в проект. |
io.projectreactor.netty:reactor-netty |
При необходимости добавьте эту зависимость в проект. |
org.springframework.boot:spring-boot-starter-validation |
При необходимости добавьте эту зависимость в проект. |
org.springframework.boot:spring-boot-starter-webflux |
При необходимости добавьте эту зависимость в проект. |
Изменения конфигурации пакета SDK
В этом разделе содержатся изменения о добавленных, удаленных и измененных свойствах.
- Следующие два пункта являются основными, чтобы обратить внимание на:
- Префикс всех имен свойств конфигурации изменился с
azure.activedirectoryнаspring.cloud.azure.active-directory. - Добавлено новое свойство
spring.cloud.azure.active-directory.enabled, чтобы включить или отключить связанные функции Microsoft Entra. Значение по умолчанию —false.
В следующей таблице показаны сопоставления свойств между azure-spring-boot-starter-active-directory и spring-cloud-azure-starter-active-directory:
| Устаревшие свойства | Современные свойства |
|---|---|
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 |
Дополнительные сведения см. в следующей таблице. |
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 |
Тип значения следующих свойств изменяется с
longнаDuration:jwt-connect-timeoutjwt-read-timeoutjwk-set-cache-lifespan-
jwk-set-cache-refresh-time.
Удаляются следующие свойства:
azure.activedirectory.allow-telemetryazure.activedirectory.user-group.enable-full-listazure.activedirectory.graph-base-uriazure.activedirectory.graph-membership-uri
Добавлены следующие свойства:
spring.cloud.azure.active-directory.enabledspring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpointspring.cloud.azure.active-directory.user-group.use-transitive-members
Заметка
Функция azure.activedirectory.graph-membership-uri заменена 2 свойствами: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint и spring.cloud.azure.active-directory.user-group.use-transitive-members. Первое свойство используется для указания имени узла и второго флага для использования пути URL-адреса: v1.0/me/memberOf или v1.0/me/transitiveMemberOf.
Ниже приведены некоторые примеры миграции:
Пример 1. Случай 1
Для устаревших версий: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf
Для современных:
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
Пример 2. Случай 2
Для устаревших версий: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf
Для современных:
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
В следующей таблице показаны сопоставления классов из azure-spring-boot-starter-active-directory в spring-cloud-azure-starter-active-directory:
| Устаревший класс | Современный класс |
|---|---|
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 |
В этом разделе перечислены удаленные классы из azure-spring-boot-starter-active-directory.
Удален устаревший класс
com.azure.spring.aad.webapp.AADHandleConditionalAccessFiltercom.azure.spring.aad.webapi.validator.AADJwtAudienceValidatorcom.azure.spring.aad.webapi.validator.AADJwtClaimValidator
От azure-spring-boot-starter-active-directory-b2c до spring-cloud-azure-starter-active-directory-b2c
Это руководство предназначено для поддержки миграции spring-cloud-azure-starter-active-directory-b2c с версии 3.azure-spring-boot-starter-active-directory-b2c
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения зависимостей
Некоторые ненужные зависимости были включены в устаревшие артефакты, которые мы удалили в современных библиотеках Spring Cloud Azure 4.0. Обязательно добавьте удаленные зависимости вручную в проект, чтобы предотвратить непреднамеренный сбой.
В следующей таблице показаны удаленные зависимости:
| Удалены зависимости | Описание |
|---|---|
org.springframework.boot:spring-boot-starter-validation |
Включите начальный модуль проверки, если вы хотите использовать проверяющий элемент Hibernate. |
Изменения конфигурации пакета SDK
В этом разделе содержатся изменения о добавленных, удаленных и измененных свойствах.
- Следующие два пункта являются основными, чтобы обратить внимание на:
- Все имена свойств конфигурации изменили префикс с
azure.activedirectory.b2cнаspring.cloud.azure.active-directory.b2c. - Добавлено новое свойство
spring.cloud.azure.active-directory.b2c.enabled, чтобы разрешить включение и отключение Azure связанных функций AD B2C. Значение по умолчанию — false.
В следующей таблице показаны сопоставления свойств из azure-spring-boot-starter-active-directory-b2c в spring-cloud-azure-starter-active-directory-b2c:
| Устаревшие свойства | Современные свойства |
|---|---|
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:azure.activedirectory.b2c.allow-telemetryazure.activedirectory.b2c.tenant
Тип значения следующих свойств изменяется с
longнаDuration:jwt-connect-timeoutjwt-read-timeout
Изменения API
В следующей таблице показаны сопоставления классов из azure-spring-boot-starter-active-directory-b2c в spring-cloud-azure-starter-active-directory-b2c:
| Устаревший класс | Современный класс |
|---|---|
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 до spring-cloud-azure-starter-data-cosmos
Это руководство предназначено для поддержки миграции spring-cloud-azure-starter-data-cosmos с версии 3.azure-spring-boot-starter-cosmos
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения конфигурации пакета SDK
Все имена свойств конфигурации изменили префикс с azure.cosmos на spring.cloud.azure.cosmos.
В следующей таблице показаны сопоставления классов из azure-spring-boot-starter-cosmos в spring-cloud-azure-starter-data-cosmos:
| Устаревшие свойства | Современные свойства |
|---|---|
azure.cosmos.connection-mode |
spring.cloud.azure.cosmos.connection-mode |
azure.cosmos.consistency-level |
spring.cloud.azure.cosmos.consistency-level |
azure.cosmos.database |
spring.cloud.azure.cosmos.database |
azure.cosmos.key |
spring.cloud.azure.cosmos.key |
azure.cosmos.populate-query-metrics |
spring.cloud.azure.cosmos.populate-query-metrics |
azure.cosmos.uri |
spring.cloud.azure.cosmos.endpoint |
От azure-spring-boot-starter-keyvault-secrets до spring-cloud-azure-starter-keyvault-secrets
Это руководство предназначено для поддержки миграции spring-cloud-azure-starter-keyvault-secrets с версии 3.azure-spring-boot-starter-keyvault-secrets
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения конфигурации пакета SDK
В этом разделе содержатся изменения о добавленных, удаленных и измененных свойствах.
В следующей таблице показаны сопоставления свойств из azure-spring-boot-starter-keyvault-secrets в spring-cloud-azure-starter-keyvault-secrets:
| Устаревшие свойства | Современные свойства |
|---|---|
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 и spring.cloud.azure.keyvault.secret.property-source-enabled. |
azure.keyvault.order |
Больше не поддерживается. Вместо этого используйте порядок property-source[n] . |
azure.keyvault.refresh-interval |
spring.cloud.azure.keyvault.secret.property-source[n].refresh-interval |
azure.keyvault.secret-keys |
spring.cloud.azure.keyvault.secret.property-source[n].secret-keys |
azure.keyvault.tenant-id |
spring.cloud.azure.keyvault.secret.property-source[n].profile.tenant-id |
azure.keyvault.uri |
spring.cloud.azure.keyvault.secret.property-source[n].endpoint |
Удалены свойства из
spring-cloud-azure-starter-keyvault-secrets:azure.keyvault.allow-telemetryazure.keyvault.order
Следующие моменты следует обратить внимание на следующее:
- Все имена свойств конфигурации изменили префикс с
azure.keyvaultнаspring.cloud.azure.keyvault.secret. -
spring.cloud.azure.keyvault.secret.enabledиспользуется для включения всех функций секрета Key Vault, включения настройки Key Vault клиентских компонентов секрета (например,SecretClientиSecretAsyncClient) и добавленияKeyVaultPropertySourceвConfigurableEnvironment. -
spring.cloud.azure.keyvault.secret.property-source-enabledиспользуется для включения всехKeyVaultPropertySource. Оно вступит в силу только в том случае, еслиspring.cloud.azure.keyvault.secret.enabled=true. - Для общих свойств Azure (например,
client,proxy,retry,credential,profile) и свойств Key Vault (например,endpoint,service-version). Еслиspring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAMEне настроено, будет использоватьсяspring.cloud.azure.keyvault.secret.PROPERTY_NAME. -
spring.cloud.azure.keyvault.secret.property-sources[n].resourceзависит от уникального ресурса Azure, поэтому если он не настроен, он не получит значение из других мест.
От azure-spring-boot-starter-servicebus-jms до spring-cloud-azure-starter-servicebus-jms
Это руководство предназначено для поддержки миграции spring-cloud-azure-starter-servicebus-jms с версии 3.azure-spring-boot-starter-servicebus-jms
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения конфигурации пакета SDK
Тип конфигурации для spring.jms.servicebus.idle-timeout изменения long (миллисекунда) на Duration шаблон для удобства чтения.
От azure-spring-boot-starter-storage до spring-cloud-azure-starter-storage-blob
Это руководство предназначено для поддержки миграции spring-cloud-azure-starter-storage-blob с версии 3.azure-spring-boot-starter-storage
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения конфигурации пакета SDK
Все имена свойств конфигурации изменили префикс с azure.storage на spring.cloud.azure.storage.blob.
В следующей таблице показаны сопоставления свойств из azure-spring-boot-starter-storage в spring-cloud-azure-starter-storage-blob:
| Устаревшие свойства | Современные свойства |
|---|---|
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
В следующей таблице показаны сопоставления классов из azure-spring-boot-starter-storage в spring-cloud-azure-starter-storage-blob:
| Устаревший класс | Современный класс |
|---|---|
com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver |
com.azure.spring.core.resource.AzureStorageBlobProtocolResolver |
com.azure.spring.autoconfigure.storage.resource.BlobStorageResource |
com.azure.spring.core.resource.StorageBlobResource |
com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver |
com.azure.spring.core.resource.AzureStorageBlobProtocolResolver |
От azure-spring-boot-starter-storage до spring-cloud-azure-starter-storage-file-share
Это руководство предназначено для поддержки миграции spring-cloud-azure-starter-storage-file-share с версии 3.azure-spring-boot-starter-storage
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения конфигурации пакета SDK
Все имена свойств конфигурации изменили префикс с azure.storage на spring.cloud.azure.storage.fileshare.
В следующей таблице показаны сопоставления свойств из azure-spring-boot-starter-storage в spring-cloud-azure-starter-storage-file-share:
| Устаревшие свойства | Современные свойства |
|---|---|
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
В следующей таблице показаны сопоставления классов из azure-spring-boot-starter-storage в spring-cloud-azure-starter-storage-file-share:
| Устаревший класс | Современный класс |
|---|---|
com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver |
com.azure.spring.core.resource.AzureStorageFileProtocolResolver |
com.azure.spring.autoconfigure.storage.resource.FileStorageResource |
com.azure.spring.core.resource.StorageFileResource |
com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver |
com.azure.spring.core.resource.AzureStorageFileProtocolResolver |
От azure-spring-cloud-starter-eventhubs до spring-cloud-azure-starter-integration-eventhubs
Это руководство предназначено для поддержки миграции spring-cloud-azure-starter-integration-eventhubs с версии 2.azure-spring-cloud-starter-eventhubs
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения конфигурации пакета SDK
Важный
Префикс конфигурации был изменен с spring.cloud.azure.eventhubspring.cloud.azure.eventhubs.
Изменения дочерних записей для этого префикса см. в следующих таблицах:
В следующей таблице показаны сопоставления свойств из azure-spring-cloud-starter-eventhubs в spring-cloud-azure-starter-integration-eventhubs:
| Устаревшие свойства | Современные свойства |
|---|---|
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:
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}
Кому:
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
- Сведения об изменениях примечаний прослушивателя см. в руководстве по миграции <<библиотеке>> миграции azure-spring-cloud-messaging.
- Удалите
EventHubOperationс функцией подписки, перемещенной в классEventHubsMessageListenerContainer, и функция отправки перемещена вEventHubsTemplate. - Переименуйте
EventHubInboundChannelAdapterкакEventHubsInboundChannelAdapter, чтобы обеспечить согласованность со службой Azure Event Hubs. - Измените конструктор с
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)наEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)иEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode). - Измените стиль создания
CheckpointConfigна простой конструктор вместо стиля сборки. - Удаление
EventHubOperation#setCheckpointConfigAPI. Чтобы задать конфигурацию контрольной точки для адаптера входящего канала, пользователи могут вызвать методEventHubsContainerProperties#setCheckpointConfig. - Удаление
EventHubOperation#setBatchConsumerConfigAPI. Чтобы задать конфигурацию пакетного использования для адаптера входящего канала, пользователи могут вызывать два методаEventHubsContainerProperties#getBatch#setMaxSizeиEventHubsContainerProperties#getBatch#setMaxWaitTimeмежду тем. - Для режима использования пакетной службы измените имена заголовков сообщений, преобразованные из пакетных сообщений.
- Измените заголовок сообщения с
azure_eventhub_enqueued_timeнаazure_eventhubs_batch_converted_enqueued_time. - Измените заголовок сообщения с
azure_eventhub_offsetнаazure_eventhubs_batch_converted_offset. - Измените заголовок сообщения с
azure_eventhub_sequence_numberнаazure_eventhubs_batch_converted_sequence_number. - Измените заголовок сообщения с
azure_partition_keyнаazure_batch_converted_partition_key.
- Измените заголовок сообщения с
- При публикации сообщений в Центры событий игнорируйте все заголовки сообщений, преобразованные из пакетных сообщений. К заголовкам относятся:
- azure_batch_converted_partition_key
- azure_eventhubs_batch_converted_enqueued_time
- azure_eventhubs_batch_converted_offset
- azure_eventhubs_batch_converted_sequence_number
- azure_eventhubs_batch_converted_system_properties
- azure_eventhubs_batch_converted_application_properties
- Режим контрольной точки
BATCHработает только в режиме пакетного использования, который можно включить, передавListenerMode.BATCHв конструктор EventHubsInboundChannelAdapter.
В следующей таблице показаны сопоставления классов из azure-spring-cloud-starter-eventhubs в spring-cloud-azure-starter-integration-eventhubs:
| Устаревший класс | Современный класс |
|---|---|
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 |
Пример фрагмента кода
EventHubsInboundChannelAdapterпример кода:Устаревший код:
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; } }Современный код:
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пример кода:Устаревший код:
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; } }Современный код:
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 до spring-integration-azure-eventhubs
Это руководство предназначено для поддержки миграции spring-integration-azure-eventhubs с версии 2.azure-spring-integration-eventhubs
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
Изменения API
- Удалите
EventHubOperationс функцией подписки, перемещенной в классEventHubsMessageListenerContainer, и функция отправки перемещена вEventHubsTemplate. - Переименуйте
EventHubInboundChannelAdapterкакEventHubsInboundChannelAdapter, чтобы обеспечить согласованность со службой Azure Event Hubs. - Измените конструктор с
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)наEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)иEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode). - Измените стиль создания
CheckpointConfigна простой конструктор вместо стиля сборки. - Удаление
EventHubOperation#setCheckpointConfigAPI. Чтобы задать конфигурацию контрольной точки для адаптера входящего канала, пользователи могут вызвать методEventHubsContainerProperties#setCheckpointConfig. - Удаление
EventHubOperation#setBatchConsumerConfigAPI. Чтобы задать конфигурацию пакетного использования для адаптера входящего канала, пользователи могут вызывать два методаEventHubsContainerProperties#getBatch#setMaxSizeиEventHubsContainerProperties#getBatch#setMaxWaitTimeмежду тем. - Для режима использования пакетной службы измените имена заголовков сообщений, преобразованные из пакетных сообщений.
- Измените заголовок сообщения с
azure_eventhub_enqueued_timeнаazure_eventhubs_batch_converted_enqueued_time. - Измените заголовок сообщения с
azure_eventhub_offsetнаazure_eventhubs_batch_converted_offset. - Измените заголовок сообщения с
azure_eventhub_sequence_numberнаazure_eventhubs_batch_converted_sequence_number. - Измените заголовок сообщения с
azure_partition_keyнаazure_batch_converted_partition_key.
- Измените заголовок сообщения с
- При публикации сообщений в Центры событий игнорируйте все заголовки сообщений, преобразованные из пакетных сообщений. К заголовкам относятся:
- azure_batch_converted_partition_key
- azure_eventhubs_batch_converted_enqueued_time
- azure_eventhubs_batch_converted_offset
- azure_eventhubs_batch_converted_sequence_number
- azure_eventhubs_batch_converted_system_properties
- azure_eventhubs_batch_converted_application_properties
- Режим контрольной точки
BATCHработает только в режиме пакетного использования, который можно включить, передавListenerMode.BATCHв конструктор EventHubsInboundChannelAdapter.
В следующей таблице показаны сопоставления классов из azure-spring-integration-eventhubs в spring-integration-azure-eventhubs:
| Устаревший класс | Современный класс |
|---|---|
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 до spring-cloud-azure-starter-integration-servicebus
Это руководство предназначено для поддержки миграции spring-cloud-azure-starter-integration-servicebus с версии 2.azure-spring-cloud-starter-servicebus
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения конфигурации пакета SDK
Для всех параметров конфигурации, поддерживаемых в spring-cloud-azure-starter-integration-servicebus, префикс остается spring.cloud.azure.servicebus.
В следующей таблице показаны сопоставления свойств из azure-spring-cloud-starter-servicebus в spring-cloud-azure-starter-integration-servicebus:
| Устаревшие свойства | Современные свойства |
|---|---|
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 или spring.cloud.azure.servicebus.retry.fixed.max-retries, необходимо настроить в зависимости от spring.cloud.azure.servicebus.retry.mode = fixed или exponential |
spring.cloud.azure.servicebus.retry-options.delay |
spring.cloud.azure.servicebus.retry.exponential.base-delay или spring.cloud.azure.servicebus.retry.fixed.delay, необходимо настроить в зависимости от spring.cloud.azure.servicebus.retry.mode = fixed или exponential |
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
- Удалите
ServiceBusQueueOperationиServiceBusTopicOperationс функцией подписки, перемещенной в классServiceBusMessageListenerContainer, и функция отправки перемещена вServiceBusTemplate. - Удалите
ServiceBusQueueInboundChannelAdapterиServiceBusTopicInboundChannelAdapterи переместите функциональные возможности для Service Bus прослушивания сущности очереди или раздела в ServiceBusInboundChannelAdapter. - Измените конструктор с
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)наServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)иServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Измените конструктор с
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)наServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)иServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Удаление API-интерфейсов
ServiceBusQueueOperation#setCheckpointConfigиServiceBusTopicOperation#setCheckpointConfig. Чтобы задать конфигурацию контрольной точки для адаптера входящего канала, пользователи могут вызывать методServiceBusContainerProperties#setAutoComplete. Отключение режима автоматического завершения эквивалентноMANUALрежиму контрольных точек и включен режимуRECORD. - Удаление API-интерфейсов
ServiceBusQueueOperatio#setClientConfigиServiceBusTopicOperation#setClientConfig. Чтобы настроить базовыйServiceBusProcessorClient, используемый адаптером входящего канала, пользователи могут использовать вместо этогоServiceBusContainerProperties. - Удалите поддержку
CompletableFutureвServiceBusTemplateиDefaultMessageHandler, вместо этого поддержкуReactor. - Добавьте новый API
ServiceBusTemplate#setDefaultEntityType, чтобы указать тип сущности, который требуется, если дляPropertiesSupplier<String, ProducerProperties>не предоставляется ниProducerProperties#entityType. - Удаление заголовка сообщения
AzureHeaders.RAW_ID. Вместо этого используйтеServiceBusMessageHeaders.MESSAGE_ID.
В следующей таблице показаны сопоставления классов из azure-spring-cloud-starter-servicebus в spring-cloud-azure-starter-integration-servicebus:
| Устаревший класс | Современный класс |
|---|---|
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 |
Пример фрагмента кода
ServiceBusInboundChannelAdapterпример кода:Устаревший код использования
ServiceBusQueueInboundChannelAdapterилиServiceBusTopicInboundChannelAdapter:public class Demo { @Bean public ServiceBusQueueInboundChannelAdapter queueMessageChannelAdapter( @Qualifier("INPUT_CHANNEL_NAME") MessageChannel inputChannel, ServiceBusQueueOperation queueOperation) { queueOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode(CheckpointMode.MANUAL).build()); ServiceBusQueueInboundChannelAdapter adapter = new ServiceBusQueueInboundChannelAdapter("QUEUE_NAME", queueOperation); adapter.setOutputChannel(inputChannel); return adapter; } @Bean public ServiceBusTopicInboundChannelAdapter topicMessageChannelAdapter( @Qualifier("INPUT_CHANNEL_NAME") MessageChannel inputChannel, ServiceBusTopicOperation topicOperation) { topicOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode(CheckpointMode.MANUAL).build()); ServiceBusTopicInboundChannelAdapter adapter = new ServiceBusTopicInboundChannelAdapter("TOPIC_NAME", topicOperation, "SUBSCRIPTION_NAME"); adapter.setOutputChannel(inputChannel); return adapter; } }Современный код:
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пример кода:Устаревший код, принимающие очередь в качестве примера:
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; } }Современный код:
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 до spring-integration-azure-servicebus
Это руководство предназначено для поддержки миграции spring-integration-azure-servicebus с версии 2.azure-spring-integration-servicebus
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
Изменения API
- Удалите
ServiceBusQueueOperationиServiceBusTopicOperationс функцией подписки, перемещенной в классServiceBusMessageListenerContainer, и функция отправки перемещена вServiceBusTemplate. - Удалите
ServiceBusQueueInboundChannelAdapterиServiceBusTopicInboundChannelAdapterи переместите функциональные возможности для Service Bus прослушивания сущности очереди или раздела в ServiceBusInboundChannelAdapter. - Измените конструктор с
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)наServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)иServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Измените конструктор с
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)наServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)иServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Удаление API-интерфейсов
ServiceBusQueueOperation#setCheckpointConfigиServiceBusTopicOperation#setCheckpointConfig. Чтобы задать конфигурацию контрольной точки для адаптера входящего канала, пользователи могут вызывать методServiceBusContainerProperties#setAutoComplete. Отключение режима автоматического завершения эквивалентноMANUALрежиму контрольных точек и включен режимуRECORD. - Удаление API-интерфейсов
ServiceBusQueueOperation#setClientConfigиServiceBusTopicOperation#setClientConfig. Чтобы настроить базовыйServiceBusProcessorClient, используемый адаптером входящего канала, пользователи могут использовать вместо этогоServiceBusContainerProperties. - Удалите поддержку
CompletableFutureвServiceBusTemplateиDefaultMessageHandler, вместо этого поддержкуReactor. - Добавьте новый API
ServiceBusTemplate#setDefaultEntityType, чтобы указать тип сущности, который требуется, если дляPropertiesSupplier<String, ProducerProperties>не предоставляется ниProducerProperties#entityType. - Удаление заголовка сообщения
AzureHeaders.RAW_ID. Вместо этого используйтеServiceBusMessageHeaders.MESSAGE_ID.
В следующей таблице показаны сопоставления классов из azure-spring-integration-servicebus в spring-integration-azure-servicebus:
| Устаревший класс | Современный класс |
|---|---|
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 до spring-cloud-azure-starter-integration-storage-queue
Это руководство предназначено для поддержки миграции spring-cloud-azure-starter-integration-storage-queue с версии 2.azure-spring-cloud-starter-storage-queue
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения конфигурации пакета SDK
Все имена свойств конфигурации изменили префикс с spring.cloud.azure.storage на spring.cloud.azure.storage.queue.
В следующей таблице показаны сопоставления свойств из azure-spring-cloud-starter-storage-queue в spring-cloud-azure-starter-integration-storage-queue:
| Устаревшие свойства | Современные свойства |
|---|---|
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
- Удалите
StorageQueueOperationи укажите вместо этогоStorageQueueTemplate. - Удаление конфигурации
checkpoint-modeвStorageQueueTemplateподдерживает только режимMANUAL.
В следующей таблице показаны сопоставления классов из azure-spring-cloud-starter-storage-queue в spring-cloud-azure-starter-integration-storage-queue.
| Устаревший класс | Современный класс |
|---|---|
com.azure.spring.integration.core.AzureHeaders |
com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter |
com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter |
com.azure.spring.integration.core.api.reactor.Checkpointer |
com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.storage.queue.StorageQueueTemplate |
com.azure.spring.storage.queue.core.StorageQueueTemplate |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler |
com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
От azure-spring-integration-storage-queue до spring-integration-azure-storage-queue
Это руководство предназначено для поддержки миграции spring-integration-azure-storage-queue с версии 2.azure-spring-integration-storage-queue
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
Изменения API
- Удалите
StorageQueueOperationи укажите вместо этогоStorageQueueTemplate. - Удаление конфигурации
checkpoint-modeвStorageQueueTemplateподдерживает только режимMANUAL.
В следующей таблице показаны сопоставления классов из azure-spring-integration-storage-queue в spring-integration-azure-storage-queue.
| Устаревший класс | Современный класс |
|---|---|
com.azure.spring.integration.core.AzureHeaders |
com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter |
com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter |
com.azure.spring.integration.core.api.reactor.Checkpointer |
com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.storage.queue.StorageQueueTemplate |
com.azure.spring.storage.queue.core.StorageQueueTemplate |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler |
com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
От azure-spring-cloud-stream-binder-eventhubs до spring-cloud-azure-stream-binder-eventhubs
Это руководство предназначено для поддержки миграции spring-cloud-azure-stream-binder-eventhubs с версии 2.azure-spring-cloud-stream-binder-eventhubs
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения конфигурации пакета SDK
Важный
Префикс конфигурации был изменен с spring.cloud.azure.eventhubspring.cloud.azure.eventhubs.
Важный
Тип привязки переименован из: eventhub на eventhubs.
Изменения дочерних записей для следующего префикса см. в следующей таблице.
В следующей таблице показаны сопоставления свойств из azure-spring-cloud-stream-binder-eventhubs в spring-cloud-azure-stream-binder-eventhubs:
| Устаревшие свойства | Современные свойства |
|---|---|
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 |
Заметка
Тип значения конфигурации start-position также изменяется с перечисления com.azure.spring.integration.core.api.StartPosition на mapStartPositionProperties для каждой секции. Таким образом, ключ является идентификатором секции, а значение равно com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties которое включает свойства смещения, порядкового номера, заквеченного даты и того, является ли включено.
Примеры миграции конфигурации
Чтобы использовать connection string для проверки подлинности и перенести указанные выше свойства, изменения конфигурации перечислены ниже.
Устаревшая конфигурация:
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
Современная конфигурация:
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
Заметка
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, например для баз данных, кэшей, сообщений или служб ИИ, требует очень высокой степени доверия к приложению и несет риски, не присутствующих в других потоках. Используйте этот поток, только если более безопасные параметры, такие как управляемые удостоверения для бессерверных или бессерверных подключений, не являются жизнеспособными. Для локальных операций компьютера предпочитайте удостоверения пользователей для бессерверных или бессерверных подключений.
Если вместо строк подключения используются субъекты безопасности, в версиях до 4.0 приложение сначала подключается к Azure Resource Manager (ARM) с указанным субъектом безопасности, а затем извлекает connection string указанного пространства имен с помощью ARM. В конце концов приложение использует полученный connection string для подключения к Azure Event Hubs. Таким образом, предоставленный субъект безопасности должен быть предоставлен с помощью роли Contributor для получения связанного пространства имен Azure Event Hubs.
Для Azure Spring Apps 4.0 мы предоставляем два способа использования субъектов безопасности для проверки подлинности. Один по-прежнему использует субъекты для подключения к ARM и получения строк подключения, где для субъектов требуется роль Contributor. Другой использует субъекты безопасности для проверки подлинности для Microsoft Entra ID и последующего подключения к Azure Event Hubs напрямую. В этом случае роль Contributor больше не требуется, а для операций обмена сообщениями требуются другие Data связанные роли. Чтобы убедиться, что субъекту безопасности предоставлено достаточное разрешение на доступ к ресурсу Azure, см. раздел Authorize access with Microsoft Entra ID.
Для проверки подлинности на основе ARM, принимая субъект-службу в качестве примера, миграция конфигурации приведена ниже, где назначенная роль не должна изменяться:
Устаревшая конфигурация:
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}
Заметка
Значения, допустимые для tenant-id: common, organizations, consumersили идентификатор клиента. Дополнительные сведения об этих значениях см. в разделе "Использована неправильная конечная точка (личные и учетные записи организации)" в разделе "Ошибка AADSTS50020 - учетная запись пользователя от поставщика удостоверений не существует в клиенте". Сведения о преобразовании приложения с одним клиентом см. в статье Convert с одним клиентом в мультитенантное приложение Microsoft Entra ID.
Требуется современная конфигурация, свойства для идентификатора подписки Azure и группы ресурсов:
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}
Заметка
Значения, допустимые для tenant-id: common, organizations, consumersили идентификатор клиента. Дополнительные сведения об этих значениях см. в разделе "Использована неправильная конечная точка (личные и учетные записи организации)" в разделе "Ошибка AADSTS50020 - учетная запись пользователя от поставщика удостоверений не существует в клиенте". Сведения о преобразовании приложения с одним клиентом см. в статье Convert с одним клиентом в мультитенантное приложение Microsoft Entra ID.
Вы также можете выполнить миграцию для проверки подлинности и авторизации с помощью Microsoft Entra ID напрямую без обхода в ARM. Обязательно предоставьте субъекту безопасности необходимые роли Data для операций обмена сообщениями. Ниже перечислены примеры конфигурации субъекта-службы и управляемого удостоверения:
С субъектом-службой
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> eventhubs: namespace: ${EVENTHUB_NAMESPACE}
Заметка
Значения, допустимые для tenant-id: common, organizations, consumersили идентификатор клиента. Дополнительные сведения об этих значениях см. в разделе "Использована неправильная конечная точка (личные и учетные записи организации)" в разделе "Ошибка AADSTS50020 - учетная запись пользователя от поставщика удостоверений не существует в клиенте". Сведения о преобразовании приложения с одним клиентом см. в статье Convert с одним клиентом в мультитенантное приложение Microsoft Entra ID.
С управляемым удостоверением
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
В следующей таблице показаны сопоставления классов из azure-spring-cloud-stream-binder-eventhubs в spring-cloud-azure-stream-binder-eventhubs.
| Устаревший класс | Современный класс |
|---|---|
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-* до spring-cloud-azure-stream-binder-servicebus
Это руководство предназначено для поддержки миграции spring-cloud-azure-stream-binder-servicebus с версии 2 azure-spring-cloud-stream-binder-servicebus-queue или azure-spring-cloud-stream-binder-servicebus-topic.
Для получения общих сведений используйте следующие ссылки:
- Общие сведения об изменениях в версии 4.0 см. в разделах Введение и преимущества миграции.
- Дополнительные сведения о изменениях стратегии в именовании проекта см. в разделе Изменения именования.
- Чтобы узнать, как использовать одну BOM для всех библиотек Azure Spring Cloud, см. раздел BOM.
- Сведения об обработке проверки подлинности в Spring Cloud Azure 4.0 см. в разделе Authentication.
- Сведения о том, как использовать
spring-boot-properties-migratorво время миграции, см. в разделе Настройка каждого пакета SDK. - Дополнительные сведения о глобальных и распространенных изменениях конфигурации см. в разделе Глобальные конфигурации.
Изменения конфигурации пакета SDK
Важный
Устаревшие либерные файлы привязки azure-spring-cloud-stream-binder-servicebus-queue и azure-spring-cloud-stream-binder-servicebus-topic, и теперь они объединяются в одну spring-cloud-azure-stream-binder-servicebus.
Важный
Тип привязки объединяется из servicebus-queue и servicebus-topic как servicebus.
В следующей таблице перечислены новые свойства конфигурации spring-cloud-azure-stream-binder-servicebus:
| Современные свойства | Описание |
|---|---|
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type |
Если вы используете функцию отправки, необходимо задать тип сущности, который можно задать для раздела или очереди. |
В следующей таблице показаны сопоставления свойств из azure-spring-cloud-stream-binder-servicebus-* в spring-cloud-azure-stream-binder-servicebus:
| Устаревшие свойства | Современные свойства |
|---|---|
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 или spring.cloud.azure.servicebus.retry.fixed.max-retries, необходимо настроить в зависимости от spring.cloud.azure.servicebus.retry.mode = fixed или exponential |
spring.cloud.azure.servicebus.retry-options.delay |
spring.cloud.azure.servicebus.retry.exponential.base-delay или spring.cloud.azure.servicebus.retry.fixed.delay, необходимо настроить в зависимости от spring.cloud.azure.servicebus.retry.mode = fixed или exponential |
spring.cloud.azure.servicebus.retry-options.max-delay |
spring.cloud.azure.servicebus.retry.exponential.max-delay |
spring.cloud.azure.servicebus.retry-options.try-timeout |
spring.cloud.azure.servicebus.retry.try-timeout |
spring.cloud.stream.servicebus.queue.bindings.* |
spring.cloud.stream.servicebus.bindings.* |
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.concurrency |
spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions / max-concurrent-calls |
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.checkpoint-mode |
spring.cloud.stream.servicebus.bindings.binding-name.consumer.auto-complete |
spring.cloud.stream.servicebus.topic.bindings.* |
spring.cloud.stream.servicebus.bindings.* |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.concurrency |
spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions / max-concurrent-calls |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.checkpoint-mode |
spring.cloud.stream.servicebus.bindings.binding-name.consumer.auto-complete |
Заметка
Свойство параллелизма будет заменено maxConcurrentSessions при true сеансов и maxConcurrentCalls при falseсеансов.
Заметка
Включение автоматического завершения равно режиму RECORD контрольных точек и напротив режима MANUAL.
Примеры миграции конфигурации
Устаревшая конфигурация, принимая очередь в качестве примера:
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
Современная конфигурация:
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
Заметка
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, например для баз данных, кэшей, сообщений или служб ИИ, требует очень высокой степени доверия к приложению и несет риски, не присутствующих в других потоках. Используйте этот поток, только если более безопасные параметры, такие как управляемые удостоверения для бессерверных или бессерверных подключений, не являются жизнеспособными. Для локальных операций компьютера предпочитайте удостоверения пользователей для бессерверных или бессерверных подключений.
Если вместо строк подключения используются субъекты безопасности, в версиях до 4.0 приложение сначала подключается к Azure Resource Manager (ARM) с указанным субъектом безопасности, а затем извлекает connection string указанного пространства имен с помощью ARM. В конце концов приложение использует полученный connection string для подключения к Azure Service Bus. Таким образом, предоставленный субъект безопасности должен быть предоставлен с помощью роли Contributor для получения связанного пространства имен Azure Service Bus.
Для Azure Spring Apps 4.0 мы предоставляем два способа использования субъектов безопасности для проверки подлинности. Один по-прежнему использует субъекты для подключения к ARM и получения строк подключения, где для субъектов требуется роль Contributor. Другой использует субъекты безопасности для проверки подлинности для Microsoft Entra ID и последующего подключения к Azure Service Bus напрямую. В этом случае роль Contributor больше не требуется, а для операций обмена сообщениями требуются другие Data связанные роли. Чтобы убедиться, что субъекту безопасности предоставлено достаточное разрешение на доступ к ресурсу Azure, см. раздел Authorize access with Microsoft Entra ID.
Для проверки подлинности на основе ARM, принимая субъект-службу в качестве примера, миграция конфигурации приведена ниже, где назначенная роль не должна изменяться:
Устаревшая конфигурация:
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}
Заметка
Значения, допустимые для tenant-id: common, organizations, consumersили идентификатор клиента. Дополнительные сведения об этих значениях см. в разделе "Использована неправильная конечная точка (личные и учетные записи организации)" в разделе "Ошибка AADSTS50020 - учетная запись пользователя от поставщика удостоверений не существует в клиенте". Сведения о преобразовании приложения с одним клиентом см. в статье Convert с одним клиентом в мультитенантное приложение Microsoft Entra ID.
Требуется современная конфигурация, свойства для идентификатора подписки Azure и группы ресурсов:
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}
Заметка
Значения, допустимые для tenant-id: common, organizations, consumersили идентификатор клиента. Дополнительные сведения об этих значениях см. в разделе "Использована неправильная конечная точка (личные и учетные записи организации)" в разделе "Ошибка AADSTS50020 - учетная запись пользователя от поставщика удостоверений не существует в клиенте". Сведения о преобразовании приложения с одним клиентом см. в статье Convert с одним клиентом в мультитенантное приложение Microsoft Entra ID.
Вы также можете выполнить миграцию для проверки подлинности и авторизации с помощью Microsoft Entra ID напрямую без обхода в ARM. Обязательно предоставьте субъекту безопасности необходимые роли Data для операций обмена сообщениями. Ниже перечислены примеры конфигурации субъекта-службы и управляемого удостоверения:
С субъектом-службой
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> servicebus: namespace: ${SERVICEBUS_NAMESPACE}
Заметка
Значения, допустимые для tenant-id: common, organizations, consumersили идентификатор клиента. Дополнительные сведения об этих значениях см. в разделе "Использована неправильная конечная точка (личные и учетные записи организации)" в разделе "Ошибка AADSTS50020 - учетная запись пользователя от поставщика удостоверений не существует в клиенте". Сведения о преобразовании приложения с одним клиентом см. в статье Convert с одним клиентом в мультитенантное приложение Microsoft Entra ID.
С управляемым удостоверением
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
- Удаление заголовка сообщения
AzureHeaders.RAW_ID. Вместо этого используйтеServiceBusMessageHeaders.MESSAGE_ID.
В следующей таблице показаны сопоставления классов из azure-spring-cloud-stream-binder-eventhubs в spring-cloud-azure-stream-binder-eventhubs.
| Устаревший класс | Современный класс |
|---|---|
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
Библиотека com.azure.spring:azure-spring-cloud-messaging не готова к версии 4.0. Функция заметок прослушивателя находится в состоянии изменения, поэтому в настоящее время не поддерживаются @AzureMessageListener, @AzureMessageListenersи @EnableAzureMessaging заметки.