Obsługa Spring Cloud Azure Redis

W tym artykule opisano sposób używania platformy Spring Cloud i usługi Spring Data Redis razem oraz udostępniania różnych typów poświadczeń na potrzeby uwierzytelniania w usłudze Azure Cache for Redis.

usługa Azure Cache for Redis udostępnia magazyn danych w pamięci oparty na oprogramowaniu Redis. Redis zwiększa wydajność i skalowalność aplikacji korzystającej z magazynów danych zaplecza.

Obsługiwane wersje usługi Redis

Aby uzyskać informacje o obsługiwanych wersjach, zobacz Bieżące wersje.

Podstawowe funkcje

Połączenie bez hasła

Połączenie bez hasła używa uwierzytelniania Entra firmy Microsoft do nawiązywania połączenia z usługami platformy Azure bez przechowywania poświadczeń w aplikacji, jej plikach konfiguracji lub zmiennych środowiskowych. Uwierzytelnianie Microsoft Entra to mechanizm nawiązywania połączenia z usługą Azure Cache for Redis przy użyciu tożsamości zdefiniowanych w usłudze Microsoft Entra ID. Dzięki uwierzytelnianiu Microsoft Entra można zarządzać tożsamościami pamięci podręcznej i innymi usługami firmy Microsoft w jednym centralnym miejscu, co upraszcza zarządzanie uprawnieniami.

Jak to działa

Platforma Spring Cloud Azure najpierw tworzy jeden z następujących typów poświadczeń w zależności od konfiguracji uwierzytelniania aplikacji:

  • ClientSecretCredential
  • ClientCertificateCredential
  • UsernamePasswordCredential
  • ManagedIdentityCredential

Jeśli żaden z tych typów poświadczeń nie zostanie znaleziony, łańcuch poświadczeń za pośrednictwem DefaultTokenCredential jest używany do uzyskiwania poświadczeń z właściwości aplikacji, zmiennych środowiskowych, tożsamości zarządzanej lub środowisk IDE. Aby uzyskać więcej informacji, zobacz Spring Cloud Azure authentication.

Konfiguracja

Konfigurowalne właściwości w przypadku korzystania z obsługi usługi Redis:

Własność Opis Wartość domyślna Wymagane
spring.cloud.azure.redis.enabled Określa, czy usługa Azure Cache for Redis jest włączona. prawdziwy Nie
spring.cloud.azure.redis.name Nazwa wystąpienia usługi Azure Cache for Redis. Tak
spring.cloud.azure.redis.resource.resource-group Grupa zasobów usługi Azure Cache for Redis. Tak
spring.cloud.azure.profile.subscription-id Identyfikator subskrypcji. Tak
spring.data.redis.azure.passwordless-enabled Czy włączyć uwierzytelnianie bezhasłowe dla usługi Azure Cache for Redis. fałszywy Nie

Podstawowe użycie

W poniższych sekcjach przedstawiono klasyczne scenariusze użycia aplikacji Spring Boot.

Nawiązywanie połączenia z usługą Azure Cache for Redis bez hasła

  1. Dodaj następującą zależność do projektu. Ta konfiguracja automatycznie obejmuje zależność spring-boot-starter w projekcie jako zależność przechodnią.

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

    Uwaga

    Pamiętaj, aby dodać element spring-cloud-azure-dependencies BOM wraz z tą zależnością. Aby uzyskać więcej informacji, zobacz sekcję Wprowadzenie w przewodniku deweloperów platformy Azure Spring Cloud.

  2. Skonfiguruj następujące właściwości w pliku application.yml:

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

    Ważny

    Połączenie bez hasła korzysta z uwierzytelniania firmy Microsoft Entra. Aby użyć uwierzytelniania Microsoft Entra, należy włączyć uwierzytelnianie Microsoft Entra i wybrać user(managed identity/service principal), aby przypisać Data Owner Access Policy.

    Aby uzyskać więcej informacji oraz wartość username, zobacz sekcję Włączanie uwierzytelniania Microsoft Entra ID w pamięci podręcznej w artykule Używanie Microsoft Entra ID do uwierzytelniania pamięci podręcznej.

Nawiązywanie połączenia z usługą Azure Cache for Redis przy użyciu tożsamości zarządzanej

  1. Aby użyć tożsamości zarządzanej, musisz włączyć tożsamość zarządzaną dla swojej usługi oraz włączyć uwierzytelnianie Microsoft Entra dla pamięci podręcznej.

  2. Następnie dodaj następujące właściwości w pliku application.yml:

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

    Ważny

    Element redis.username należy zmienić na identyfikator obiektu (podmiotu zabezpieczeń) tożsamości zarządzanej.

    Jeśli używasz tożsamości zarządzanej przypisanej przez użytkownika, musisz również dodać właściwość spring.cloud.azure.credential.client-id przy użyciu identyfikatora klienta tożsamości zarządzanej przypisanej przez użytkownika.

Nawiązywanie połączenia z usługą Azure Cache for Redis za pośrednictwem usługi Azure Resource Manager

Aby nawiązać połączenie z usługą Azure Cache for Redis, wykonaj następujące kroki:

  1. Dodaj następującą zależność do projektu. Ta konfiguracja automatycznie uwzględnia zależność spring-boot-starter w projekcie jako zależność przechodnią.

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

    Uwaga

    Pamiętaj, aby dodać element spring-cloud-azure-dependencies BOM wraz z tą zależnością. Aby uzyskać więcej informacji, zobacz sekcję Wprowadzenie w przewodniku deweloperów platformy Azure Spring Cloud.

  1. Skonfiguruj następujące właściwości w pliku application.yml:

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

Próbki

Zobacz repozytorium azure-spring-boot-samples w serwisie GitHub.