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