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. | Sí | |
spring.cloud.azure.redis.resource.resource-group | El grupo de recursos de Azure Cache for Redis. | Sí | |
spring.cloud.azure.profile.subscription-id | Identificador de suscripción. | Sí | |
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
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.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)
asignarData 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
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é.
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:
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.
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.