Aracılığıyla paylaş


Spring Cloud Azure Redis desteği

Bu makalede Spring Cloud Azure ve Spring Data Redis'i birlikte nasıl kullanabileceğiniz ve Redis için Azure Cache'e kimlik doğrulaması için çeşitli kimlik bilgileri türlerini nasıl sağlayabileceğiniz açıklanır.

Redis için Azure Cache, Redis yazılımını temel alan bir bellek içi veri deposu sağlar. Redis, arka uç veri depolarını yoğun olarak kullanan bir uygulamanın performansını ve ölçeklenebilirliğini artırır.

Desteklenen Redis sürümleri

Desteklenen sürümler için bkz. Geçerli sürümler.

Temel özellikler

Parolasız bağlantı

Parolasız bağlantı, uygulamada, yapılandırma dosyalarında veya ortam değişkenlerinde hiçbir kimlik bilgisi depolamadan Azure hizmetlerine bağlanmak için Microsoft Entra kimlik doğrulamasını kullanır. Microsoft Entra kimlik doğrulaması, Microsoft Entra Id'de tanımlanan kimlikleri kullanarak Redis için Azure Cache'e bağlanmaya yönelik bir mekanizmadır. Microsoft Entra kimlik doğrulaması ile önbellek kimliklerini ve diğer Microsoft hizmetlerini merkezi bir konumda yönetebilirsiniz ve bu da izin yönetimini basitleştirir.

Nasıl çalışır?

Spring Cloud Azure, uygulama kimlik doğrulaması yapılandırmasına bağlı olarak ilk olarak aşağıdaki kimlik bilgileri türlerinden birini oluşturur:

  • ClientSecretCredential
  • ClientCertificateCredential
  • UsernamePasswordCredential
  • ManagedIdentityCredential

Bu tür kimlik bilgilerinin hiçbiri bulunmazsa, DefaultTokenCredential aracılığıyla kimlik bilgisi zinciri uygulama özelliklerinden, ortam değişkenlerinden, yönetilen kimlikten veya IDE'lerden kimlik bilgilerini almak için kullanılır. Daha fazla bilgi için bkz. Spring Cloud Azure kimlik doğrulaması.

Konfigürasyon

  • Spring Cloud Azure 5.x
  • Spring Cloud Azure 4.x

Redis desteği kullanılırken yapılandırılabilir özellikler:

Mülk Açıklama Varsayılan Değer Gerekli
spring.cloud.azure.redis.enabled Redis için Azure Cache'in etkinleştirilip etkinleştirilmediği. doğru Hayır
spring.cloud.azure.redis.name Redis için Azure Cache örneği adı. Evet
spring.cloud.azure.redis.resource.resource-group Redis için Azure Cache kaynak grubu. Evet
spring.cloud.azure.profile.subscription-id Abonelik kimliği. Evet
spring.data.redis.azure.passwordless özellikli Redis için Azure Cache'in parolasız etkinleştirilip etkinleştirilmeyileceği. yanlış Hayır

Temel kullanım

Aşağıdaki bölümlerde klasik Spring Boot uygulaması kullanım senaryoları gösterilmektedir.

Parolasız redis için Azure Cache'e bağlanma

  • Spring Cloud Azure 5.x
  • Spring Cloud Azure 4.x
  1. Projenize aşağıdaki bağımlılığı ekleyin. Bu, projenizdeki spring-boot-starter bağımlılığını geçişli olarak otomatik olarak içerir.

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

    Not

    5.13.0sürümünden bu yana parolasız bağlantılar desteklenmektedir.

    Ürün reçetesi spring-cloud-azure-dependencies yukarıdaki bağımlılıkla birlikte eklemeyi unutmayın. Daha fazla bilgi için Spring Cloud Azure geliştirici kılavuzuBaşlarken bölümüne bakın.

  2. application.yml dosyanızda aşağıdaki özellikleri yapılandırın:

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

    Önemli

    Parolasız bağlantı Microsoft Entra kimlik doğrulamasını kullanır. Microsoft Entra kimlik doğrulamasını kullanmak için Microsoft Entra Authentication'ı etkinleştirmeniz ve user(managed identity/service principal)'ı seçerek Data Owner Access Policyatamanız gerekir.

    Daha fazla bilgi edinmek ve değerini almak içinÖnbellek kimlik doğrulaması için Microsoft Entra Id kullanma önbelleğinizde Microsoft Entra Id kimlik doğrulamasını etkinleştirme bölümüne bakın.

Yönetilen kimlikle Redis için Azure Cache'e bağlanma

  1. Yönetilen kimliği kullanmak için hizmetiniz için yönetilen kimliği etkinleştirmeniz ve önbelleğinizde Microsoft Entra kimlik doğrulamasını etkinleştirmeniz gerekir.

  2. Ardından, application.yml dosyanıza aşağıdaki özellikleri ekleyin:

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

    Önemli

    redis.username yönetilen kimlik nesnesi (sorumlu) kimliğine değiştirilmelidir.

    Kullanıcı tarafından atanan yönetilen kimlik kullanıyorsanız, kullanıcı tarafından atanan yönetilen kimlik istemci kimliğiniz ile spring.cloud.azure.credential.client-id özelliğini de eklemeniz gerekir.

Azure Resource Manager aracılığıyla Redis için Azure Cache'e bağlanma

Redis için Azure Cache'e bağlanmak için aşağıdaki adımları kullanın:

  • Spring Cloud Azure 5.x
  • Spring Cloud Azure 4.x
  1. Projenize aşağıdaki bağımlılığı ekleyin. Bu, projenizdeki spring-boot-starter bağımlılığını geçişli olarak otomatik olarak içerir.

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

    Not

    Ürün reçetesi spring-cloud-azure-dependencies yukarıdaki bağımlılıkla birlikte eklemeyi unutmayın. Daha fazla bilgi için Spring Cloud Azure geliştirici kılavuzuBaşlarken bölümüne bakın.

  1. application.yml dosyanızda aşağıdaki özellikleri yapılandırın:

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

Örnekleri

GitHub'daki azure-spring-boot-samples deposuna bakın.