Udostępnij za pośrednictwem


Obsługa usługi Azure Redis w usłudze Spring Cloud

Ten artykuł dotyczy:✅ w wersji 4.19.0 ✅ w wersji 5.19.0

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 entra firmy Microsoft to mechanizm łączenia się z usługą Azure Cache for Redis przy użyciu tożsamości zdefiniowanych w identyfikatorze Entra firmy Microsoft. Dzięki uwierzytelnianiu firmy Microsoft Entra można zarządzać tożsamościami pamięci podręcznej i innymi usługami firmy Microsoft w centralnej lokalizacji, 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ć bez hasła 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 funkcja automatycznie uwzględnia zależność spring-boot-starter w projekcie przechodnio.

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

    Nuta

    Połączenia bez hasła są obsługiwane od wersji 5.19.0.

    Pamiętaj, aby dodać spring-cloud-azure-dependencies BOM wraz z powyższymi zależnościami. 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 entra firmy Microsoft, należy włączyć uwierzytelnianie entra firmy Microsoft i wybrać user(managed identity/service principal), aby przypisać Data Owner Access Policy.

    Aby uzyskać więcej informacji i uzyskać wartość username, zobacz sekcję Enable Microsoft Entra ID authentication on your cache section (Włączanie uwierzytelniania identyfikatora Entra firmy Microsoft w pamięci podręcznej) w sekcji Use Microsoft Entra ID for cache authentication (Używanie identyfikatora Entra firmy Microsoft do uwierzytelniania w 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 usługi i włączyć uwierzytelnianie firmy Microsoft Entra w 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

    redis.username powinna zostać zmieniona na identyfikator obiektu tożsamości zarządzanej (podmiot zabezpieczeń).

    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 funkcja automatycznie uwzględnia zależność spring-boot-starter w projekcie przechodnio.

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

    Nuta

    Pamiętaj, aby dodać spring-cloud-azure-dependencies BOM wraz z powyższymi zależnościami. 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 witrynie GitHub.