Spring Cloud Azure Redis 支持
本文 适用于:✅ 版本 4.19.0 ✅ 版本 5.19.0
本文介绍如何结合使用 Spring Cloud Azure 和 Spring Data Redis,并提供各种类型的凭据,以便向 Azure Redis 缓存进行身份验证。
Azure Redis 缓存 提供基于 Redis 软件的内存中数据存储。 Redis 可提高使用后端数据存储的应用程序的性能和可伸缩性。
支持的 Redis 版本
有关支持的版本,请参阅 当前版本。
核心功能
无密码连接
无密码连接使用 Microsoft Entra 身份验证连接到 Azure 服务,而无需在应用程序、配置文件或环境变量中存储任何凭据。 Microsoft Entra 身份验证是一种使用 Microsoft Entra ID 中定义的标识连接到 Azure Redis 缓存的机制。 使用 Microsoft Entra 身份验证,可以在中心位置管理缓存标识和其他Microsoft服务,从而简化权限管理。
工作原理
Spring Cloud Azure 首先根据应用程序身份验证配置生成以下类型的凭据之一:
ClientSecretCredential
ClientCertificateCredential
UsernamePasswordCredential
ManagedIdentityCredential
如果未找到这些类型的凭据,则通过 DefaultTokenCredential
的凭据链用于从应用程序属性、环境变量、托管标识或 IDE 获取凭据。 有关详细信息,请参阅 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 | 订阅 ID。 | 是的 | |
spring.data.redis.azure.passwordless-enabled | 是否为 Azure Redis 缓存启用无密码。 | 假 | 不 |
基本用法
以下部分显示了经典 Spring Boot 应用程序使用方案。
使用无密码连接到 Azure Redis 缓存
将以下依赖项添加到项目。 这会自动在项目中以可传递方式包含
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.19.0
以来,支持无密码连接。请记住添加 BOM
spring-cloud-azure-dependencies
以及上述依赖项。 有关详细信息,请参阅 Spring Cloud Azure 开发人员指南的 入门 部分。在 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
。有关详细信息和获取
的值, 请参阅 部分中的“启用Microsoft条目 ID 身份验证”。使用 Microsoft Entra ID 进行缓存身份验证 的缓存
使用托管标识连接到 Azure Cache for Redis
若要使用托管标识,需要为服务启用托管标识,在缓存上启用Microsoft Entra 身份验证。
然后,在 application.yml 文件中添加以下属性:
spring: cloud: azure: credential: managed-identity-enabled: true
重要
redis.username
应更改为托管标识对象(主体)ID。如果使用用户分配的托管标识,则还需要使用用户分配的托管标识客户端 ID 添加属性
spring.cloud.azure.credential.client-id
。
通过 Azure 资源管理器连接到 Azure Redis 缓存
使用以下步骤连接到 Azure Redis 缓存:
将以下依赖项添加到项目。 这会自动在项目中以可传递方式包含
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>
注意
请记住添加 BOM
spring-cloud-azure-dependencies
以及上述依赖项。 有关详细信息,请参阅 Spring Cloud Azure 开发人员指南的 入门 部分。
在 application.yml 文件中配置以下属性:
spring: cloud: azure: profile: subscription-id: ${AZURE_SUBSCRIPTION_ID} redis: name: ${AZURE_CACHE_REDIS_NAME} resource: resource-group: ${AZURE_RESOURCE_GROUP}
样品
请参阅 GitHub 上的 azure-spring-boot-samples 存储库