Compartir vía


Compatibilidad con Azure Redis en Spring Cloud

Este artículo se aplica a:✅ versión 4.19.0 ✅ versión 5.19.0

En este artículo se describe cómo puede usar Spring Cloud Azure y Spring Data Redis juntos y proporcionar varios tipos de credenciales para la autenticación en Azure Cache for Redis.

Azure Cache for Redis proporciona un almacén de datos en memoria basado en el software de Redis. Redis mejora el rendimiento y la escalabilidad de una aplicación que usa almacenes de datos de back-end en gran medida.

Versiones compatibles de Redis

Para obtener versiones compatibles, consulte Versiones actuales.

Características principales

Conexión sin contraseña

La conexión sin contraseña usa la autenticación de Microsoft Entra para conectarse a servicios de Azure sin almacenar credenciales en la aplicación, sus archivos de configuración o en variables de entorno. La autenticación de Microsoft Entra es un mecanismo para conectarse a Azure Cache for Redis mediante identidades definidas en Microsoft Entra ID. Con la autenticación de Microsoft Entra, puede administrar identidades de caché y otros servicios de Microsoft en una ubicación central, lo que simplifica la administración de permisos.

Cómo funciona

Spring Cloud Azure compila primero uno de los siguientes tipos de credenciales en función de la configuración de autenticación de la aplicación:

  • ClientSecretCredential
  • ClientCertificateCredential
  • UsernamePasswordCredential
  • ManagedIdentityCredential

Si no se encuentra ninguno de estos tipos de credenciales, la cadena de credenciales a través de DefaultTokenCredential se usa para obtener credenciales de las propiedades de la aplicación, las variables de entorno, la identidad administrada o los IDE. Para más información, consulte autenticación de Azure de Spring Cloud.

Configuración

Propiedades configurables cuando se usa compatibilidad con Redis:

Propiedad Descripción Valor predeterminado Obligatorio
spring.cloud.azure.redis.enabled Indica si una instancia de Azure Cache for Redis está habilitada. verdadero No
spring.cloud.azure.redis.name Nombre de instancia de Azure Cache for Redis.
spring.cloud.azure.redis.resource.resource-group El grupo de recursos de Azure Cache for Redis.
spring.cloud.azure.profile.subscription-id Identificador de suscripción.
spring.data.redis.azurehabilitado para .passwordless Si se habilita sin contraseña para Azure Cache for Redis. falso No

Uso básico

En las secciones siguientes se muestran los escenarios clásicos de uso de aplicaciones de Spring Boot.

Conexión a Azure Cache for Redis con contraseña sin contraseña

  1. Agregue la siguiente dependencia al proyecto. Esto incluye automáticamente la dependencia spring-boot-starter en el proyecto de forma transitiva.

    <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>
    

    Nota

    Se admiten conexiones sin contraseña desde la versión 5.19.0.

    Recuerde agregar el spring-cloud-azure-dependencies boM junto con la dependencia anterior. Para obtener más información, consulte la sección Introducción de la guía para desarrolladores de Azure de Spring Cloud.

  2. Configure las siguientes propiedades en el archivo application.yml:

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

    Importante

    La conexión sin contraseña usa la autenticación de Microsoft Entra. Para usar la autenticación de Microsoft Entra, debe habilitar la autenticación de Microsoft Entra y seleccionar user(managed identity/service principal) asignar Data Owner Access Policy.

    Para obtener más información y obtener el valor de username, consulte la sección Habilitación de la autenticación de id. de Microsoft Entra en la memoria caché de Usar el id. de Microsoft Entra para la autenticación de caché.

Conexión a Azure Cache for Redis con identidad administrada

  1. Para usar la identidad administrada, debe habilitar la identidad administrada para el servicio y habilitar la autenticación de Microsoft Entra en la memoria caché.

  2. A continuación, agregue las siguientes propiedades en el archivo application.yml:

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

    Importante

    El redis.username debe cambiar al identificador del objeto de identidad administrada (entidad de seguridad).

    Si usa la identidad administrada asignada por el usuario, también debe agregar la propiedad spring.cloud.azure.credential.client-id con el identificador de cliente de identidad administrada asignada por el usuario.

Conexión a Azure Cache for Redis mediante Azure Resource Manager

Siga estos pasos para conectarse a Azure Cache for Redis:

  1. Agregue la siguiente dependencia al proyecto. Esto incluye automáticamente la dependencia spring-boot-starter en el proyecto de forma transitiva.

    <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>
    

    Nota

    Recuerde agregar el spring-cloud-azure-dependencies boM junto con la dependencia anterior. Para obtener más información, consulte la sección Introducción de la guía para desarrolladores de Azure de Spring Cloud.

  1. Configure las siguientes propiedades en el archivo application.yml:

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

Muestras

Consulte el repositorio azure-spring-boot-samples en GitHub.