Поделиться через


Поддержка Spring Cloud Для Redis

эта статья относится к:✅ версии 4.19.0 ✅ версии 5.20.1

В этой статье описывается, как использовать Azure Spring Cloud и Spring Data Redis вместе и предоставлять различные типы учетных данных для проверки подлинности в кэше Azure для Redis.

кэш Azure для Redis предоставляет хранилище данных в памяти на основе программного обеспечения Redis. Redis значительно повышает производительность и масштабируемость приложения, использующего внутренние хранилища данных.

Поддерживаемые версии Redis

Поддерживаемые версии см. в текущих версий.

Основные функции

Подключение без пароля

Подключение без пароля использует проверку подлинности Microsoft Entra для подключения к службам Azure без хранения учетных данных в приложении, его файлах конфигурации или переменных среды. Проверка подлинности Microsoft Entra — это механизм подключения к кэшу Azure для Redis с помощью удостоверений, определенных в идентификаторе Microsoft Entra. С помощью проверки подлинности Microsoft Entra можно управлять удостоверениями кэша и другими службами Майкрософт в центральном расположении, что упрощает управление разрешениями.

Принцип работы

Spring Cloud Azure сначала создает один из следующих типов учетных данных в зависимости от конфигурации проверки подлинности приложения:

  • ClientSecretCredential
  • ClientCertificateCredential
  • UsernamePasswordCredential
  • ManagedIdentityCredential

Если ни один из этих типов учетных данных не найден, цепочка учетных данных через DefaultTokenCredential используется для получения учетных данных из свойств приложения, переменных среды, управляемых удостоверений или удостоверений. Дополнительные сведения см. в аутентификации Spring Cloud Azure.

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

Настраиваемые свойства при поддержке Redis:

Свойство Описание Значение по умолчанию Обязательно
spring.cloud.azure.redis.enabled Включен ли кэш Azure для Redis. истинный Нет
spring.cloud.azure.redis.name Имя экземпляра кэша Azure для Redis. Да
spring.cloud.azure.redis.resource.resource-group Группа ресурсов кэша Azure для Redis. Да
spring.cloud.azure.profile.subscription-id Идентификатор подписки. Да
spring.data.redis.azure.passwordless Включение без пароля для кэша Azure для Redis. ложный Нет

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

В следующих разделах показаны классические сценарии использования приложений Spring Boot.

Подключение к кэшу Azure для Redis с помощью без пароля

  1. Добавьте в проект следующую зависимость. Это автоматически включает spring-boot-starter зависимость в проекте транзитивно.

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
    </dependency>
    

    Заметка

    С версии 5.20.1поддерживаются бессерверные подключения.

    Не забудьте добавить spring-cloud-azure-dependencies BOM вместе с приведенной выше зависимостью. Дополнительные сведения см. в разделе Начало работы руководства разработчикаSpring Cloud Azure.

  2. Настройте следующие свойства в файле application.yml:

    spring:
      data:
        redis:
          host: ${AZURE_CACHE_REDIS_HOST}
          username: ${AZURE_CACHE_REDIS_USERNAME}
          port: 6380
          ssl:
            enabled: true
          azure:
            passwordless-enabled: true
    

    Важный

    Подключение без пароля использует проверку подлинности Microsoft Entra. Чтобы использовать проверку подлинности Microsoft Entra, необходимо включить проверку подлинности Microsoft Entra и выбрать user(managed identity/service principal), чтобы назначить Data Owner Access Policy.

    Дополнительные сведения и получение значения usernameсм. в разделе Включение проверки подлинности идентификатора Microsoft Entra в разделе кэша использование идентификатора Microsoft Entra для проверки подлинности кэша.

Подключение к кэшу Azure для Redis с помощью управляемого удостоверения

  1. Чтобы использовать управляемое удостоверение, необходимо включить управляемое удостоверение для службы и включить проверку подлинности Microsoft Entra вкэша.

  2. Затем добавьте следующие свойства в файл application.yml:

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
    

    Важный

    redis.username должен измениться на идентификатор объекта управляемого удостоверения (субъекта).

    Если вы используете управляемое удостоверение, назначаемое пользователем, необходимо также добавить свойство spring.cloud.azure.credential.client-id с идентификатором клиента управляемого удостоверения, назначаемого пользователем.

Подключение к кэшу Azure для Redis с помощью Azure Resource Manager

Чтобы подключиться к кэшу Azure для Redis, выполните следующие действия.

  1. Добавьте в проект следующую зависимость. Это автоматически включает spring-boot-starter зависимость в проекте транзитивно.

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-resourcemanager</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    

    Заметка

    Не забудьте добавить spring-cloud-azure-dependencies BOM вместе с приведенной выше зависимостью. Дополнительные сведения см. в разделе Начало работы руководства разработчикаSpring Cloud Azure.

  1. Настройте следующие свойства в файле application.yml:

    spring:
      cloud:
        azure:
          profile:
            subscription-id: ${AZURE_SUBSCRIPTION_ID}
          redis:
            name: ${AZURE_CACHE_REDIS_NAME}
            resource:
              resource-group: ${AZURE_RESOURCE_GROUP}
    

Образцы

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