Автоматическая настройка клиентов Azure SDK

Spring Boot упрощает разработку Spring Cloud Azure. Начальные программы Spring Cloud Azure — это набор удобных дескрипторов зависимостей для включения в приложение. Стартеры отвечают за создание экземпляров объектов и логику их конфигурирования, так что вам не придётся делать это самостоятельно. Каждый модуль starter зависит от spring-cloud-azure-starter, который предоставляет критически важные параметры конфигурации, такие как облачная среда Azure и данные аутентификации. Эти свойства можно настроить, например, в YAML-файле, как показано в следующем примере:

spring:
  cloud:
    azure:
      profile:
        tenant-id: <tenant>
        cloud-type: Azure
      credential:
        client-id: ${AZURE_CLIENT_ID}

Заметка

Свойство cloud является необязательным.

Значения, допустимые для tenant-id: common, organizations, consumersили идентификатор клиента. Дополнительные сведения об этих значениях см. в разделе Использована неправильная конечная точка (личные и организационные учетные записи) статьи Ошибка AADSTS50020: учетная запись пользователя от поставщика удостоверений не существует в арендаторе. Сведения о преобразовании однотенантного приложения см. в статье Преобразование однотенантного приложения в мультитенантное в Microsoft Entra ID.

Эти свойства являются необязательными. Если вы не укажете их, Spring Boot пытается автоматически найти их. Дополнительные сведения о том, как Spring Boot находит эти свойства, см. в документации.

Настройка зависимостей

Стартеры Spring Cloud Azure можно использовать двумя способами. Первым способом является использование пакетов SDK Azure с зависимостью spring-cloud-azure-starter, как показано в следующем примере:

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-cosmos</artifactId>
</dependency>
<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>spring-cloud-azure-starter</artifactId>
</dependency>

Второй способ заключается в том, чтобы избежать добавления Azure SDK зависимостей и вместо этого включить Spring Cloud Azure Starter для каждой службы напрямую. Например, при использовании Azure Cosmos DB добавляется следующая зависимость:

<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>spring-cloud-azure-starter-cosmos</artifactId>
</dependency>

Совет

Список поддерживаемых стартеров см. в разделе Starter dependencies в руководстве разработчика Spring Cloud Azure.

Конфигурация

Заметка

Если вы используете субъект безопасности для проверки подлинности и авторизации с помощью Microsoft Entra ID для доступа к ресурсу Azure, убедитесь, что субъект безопасности имеет достаточно разрешений для доступа к ресурсу Azure. Дополнительные сведения см. в разделе Авторизация доступа с помощьюидентификатора Microsoft Entra.

Свойства конфигурации для каждой службы Azure находятся под префиксомspring.cloud.azure.<azure-service>.

Совет

Список всех свойств конфигурации Azure Spring Cloud см. в разделе свойства конфигурации Spring Cloud Azure.

Базовое использование

Добавьте следующие свойства в файл application.yaml для автоматической настройки клиента Azure Cosmos DB.

spring:
  cloud:
    azure:
      cosmos:
        database: ${AZURE_COSMOS_DATABASE_NAME}
        endpoint: ${AZURE_COSMOS_ENDPOINT}
        consistency-level: eventual
        connection-mode: direct

Затем и CosmosClient, и CosmosAsyncClient доступны в контексте, и их можно автоматически внедрить, как показано в следующем примере:

class Demo {
@Autowired
private CosmosClient cosmosClient;

    @Override
    public void run() {
        User item = User.randomUser();
        CosmosContainer container = cosmosClient.getDatabase(databaseName).getContainer(containerName);
        container.createItem(item);
    }
}

Образцы

См. репозиторий azure-spring-boot-samples на сайте GitHub.