共用方式為


Spring Cloud Azure Redis 支援

本文適用於:✅ 4.19.0 ✅ 5.19.0 版

本文說明如何將 Spring Cloud Azure 和 Spring Data Redis 一起使用,並提供各種類型的認證,以向 Azure Cache for Redis 進行驗證。

Azure Cache for Redis 會根據 Redis 軟體提供記憶體內部數據存放區。 Redis 可改善大量使用後端資料存放區之應用程式的效能和延展性。

支援的 Redis 版本

如需支援的版本,請參閱 目前的版本

核心功能

無密碼連線

無密碼聯機會使用 Microsoft Entra 驗證來連線到 Azure 服務,而不需將任何認證儲存在應用程式、其組態檔或環境變數中。 Microsoft Entra 驗證是一種機制,可使用在 entra ID Microsoft 中定義的身分識別連線到 Azure Cache for Redis。 透過Microsoft Entra 驗證,您可以在中央位置管理快取身分識別和其他Microsoft服務,以簡化許可權管理。

運作方式

Spring Cloud Azure 會根據應用程式驗證組態,先建置下列其中一種類型的認證:

  • ClientSecretCredential
  • ClientCertificateCredential
  • UsernamePasswordCredential
  • ManagedIdentityCredential

如果找不到這些類型的認證,則會使用透過 DefaultTokenCredential 的認證鏈結,從應用程式屬性、環境變數、受控識別或 IDE 取得認證。 如需詳細資訊,請參閱 Spring Cloud Azure 驗證

配置

使用 Redis 支援時可設定的屬性:

財產 描述 預設值 必填
spring.cloud.azure.redis.enabled 是否啟用 Azure Cache for Redis。
spring.cloud.azure.redis.name Azure Cache for Redis 實例名稱。 是的
spring.cloud.azure.redis.resource.resource-group Azure Cache for Redis 的資源群組。 是的
spring.cloud.azure.profile.subscription-id 訂用帳戶標識碼。 是的
spring.data.redis.azure.passwordless-enabled 是否要啟用 Azure Cache for Redis 的無密碼。

基本用法

下列各節顯示傳統 Spring Boot 應用程式使用案例。

使用無密碼連線到 Azure Cache for 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.19.0以來,已支援無密碼連線。

    請記得新增 BOM spring-cloud-azure-dependencies 與上述相依性。 如需詳細資訊,請參閱 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 Authentication,然後選取 user(managed identity/service principal) 來指派 Data Owner Access Policy

    如需詳細資訊並取得 username的值,請參閱 使用 Microsoft Entra ID 進行快取驗證的 在快取 上 Microsoft啟用 entra ID一節。

使用受控識別連線到 Azure Cache for Redis

  1. 若要使用受控識別,您需要為服務啟用受控識別,在快取上啟用 Microsoft Entra 驗證。

  2. 然後,在 application.yml 檔案中新增下列屬性:

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

    重要

    redis.username 應該變更為受控識別物件 (principal) 識別碼。

    如果您使用使用者指派的受控識別,您也必須使用使用者指派的受控識別用戶端識別碼來新增 屬性 spring.cloud.azure.credential.client-id

透過 Azure Resource Manager 連線到 Azure Cache for Redis

使用下列步驟連線到 Azure Cache for 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>
    

    注意

    請記得新增 BOM spring-cloud-azure-dependencies 與上述相依性。 如需詳細資訊,請參閱 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}
    

樣品

請參閱 GitHub 上的 azure-spring-boot-samples 存放庫