Freigeben über


Spring Cloud Azure Redis-Unterstützung

Dieser Artikel gilt für:✅ Version 4.19.0 ✅ Version 5.19.0

In diesem Artikel wird beschrieben, wie Sie Spring Cloud Azure und Spring Data Redis zusammen verwenden und verschiedene Arten von Anmeldeinformationen für die Authentifizierung für Azure Cache für Redis bereitstellen können.

Azure Cache für Redis stellt basierend auf der Redis-Software einen Speicher im Arbeitsspeicher bereit. Redis verbessert die Leistung und Skalierbarkeit einer Anwendung, die stark Back-End-Datenspeicher verwendet.

Unterstützte Redis-Versionen

Unterstützte Versionen finden Sie unter Aktuelle Versionen.

Kernfunktionen

Kennwortlose Verbindung

Die kennwortlose Verbindung verwendet die Microsoft Entra-Authentifizierung zum Herstellen einer Verbindung mit Azure-Diensten, ohne Anmeldeinformationen in der Anwendung, den Konfigurationsdateien oder in Umgebungsvariablen zu speichern. Die Microsoft Entra-Authentifizierung ist ein Mechanismus zum Herstellen einer Verbindung mit Azure Cache für Redis mithilfe von Identitäten, die in Microsoft Entra ID definiert sind. Mit der Microsoft Entra-Authentifizierung können Sie Cacheidentitäten und andere Microsoft-Dienste an einem zentralen Ort verwalten, wodurch die Berechtigungsverwaltung vereinfacht wird.

Funktionsweise

Spring Cloud Azure erstellt zunächst je nach Anwendungsauthentifizierungskonfiguration eine der folgenden Arten von Anmeldeinformationen:

  • ClientSecretCredential
  • ClientCertificateCredential
  • UsernamePasswordCredential
  • ManagedIdentityCredential

Wenn keine dieser Arten von Anmeldeinformationen gefunden wird, wird die Anmeldeinformationskette über DefaultTokenCredential verwendet, um Anmeldeinformationen von Anwendungseigenschaften, Umgebungsvariablen, verwalteter Identität oder IDEs abzurufen. Weitere Informationen finden Sie unter Spring Cloud Azure authentication.

Konfiguration

Konfigurierbare Eigenschaften bei Verwendung der Redis-Unterstützung:

Eigentum Beschreibung Standardwert Erforderlich
spring.cloud.azure.redis.enabled Gibt an, ob ein Azure-Cache für Redis aktiviert ist. STIMMT Nein
spring.cloud.azure.redis.name Azure Cache für Redis-Instanzname. Ja
spring.cloud.azure.redis.resource.resource-group Die Ressourcengruppe von Azure Cache für Redis. Ja
spring.cloud.azure.profile.subscription-id Die Abonnement-ID. Ja
spring.data.redis.azure.passwordless-enabled Gibt an, ob kennwortlos für Azure Cache für Redis aktiviert werden soll. FALSCH Nein

Grundlegende Nutzung

Die folgenden Abschnitte zeigen die klassischen Anwendungsverwendungsszenarien für Spring Boot.

Herstellen einer Verbindung mit Azure Cache für Redis ohne Kennwort

  1. Fügen Sie dem Projekt die folgende Abhängigkeit hinzu. Dies schließt automatisch die spring-boot-starter Abhängigkeit in Ihr Projekt transitiv ein.

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

    Anmerkung

    Kennwortlose Verbindungen werden seit Version 5.19.0unterstützt.

    Denken Sie daran, die BOM-spring-cloud-azure-dependencies zusammen mit der oben genannten Abhängigkeit hinzuzufügen. Weitere Informationen finden Sie im Abschnitt Erste Schritte abschnitt des Spring Cloud Azure-Entwicklerhandbuchs.

  2. Konfigurieren Sie die folgenden Eigenschaften in Ihrer application.yml Datei:

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

    Wichtig

    Kennwortlose Verbindung verwendet die Microsoft Entra-Authentifizierung. Um die Microsoft Entra-Authentifizierung zu verwenden, sollten Sie die Microsoft Entra-Authentifizierung aktivieren und user(managed identity/service principal) auswählen, um Data Owner Access Policyzuzuweisen.

    Weitere Informationen und informationen zum Abrufen des Werts für usernamefinden Sie im Abschnitt Aktivieren der Microsoft Entra ID-Authentifizierung im Cache Abschnitt Verwenden der Microsoft Entra-ID für die Cacheauthentifizierung.

Herstellen einer Verbindung mit Azure Cache für Redis mit verwalteter Identität

  1. Um die verwaltete Identität zu verwenden, müssen Sie die verwaltete Identität für Ihren Dienst aktivieren und die Microsoft Entra-Authentifizierung im Cacheaktivieren.

  2. Fügen Sie dann die folgenden Eigenschaften in Ihrer application.yml Datei hinzu:

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

    Wichtig

    Die redis.username sollte in die ID des verwalteten Identitätsobjekts (Prinzipal) geändert werden.

    Wenn Sie die vom Benutzer zugewiesene verwaltete Identität verwenden, müssen Sie auch die Eigenschaft spring.cloud.azure.credential.client-id mit Ihrer vom Benutzer zugewiesenen verwalteten Identitätsclient-ID hinzufügen.

Herstellen einer Verbindung mit Azure Cache für Redis über Azure Resource Manager

Führen Sie die folgenden Schritte aus, um eine Verbindung mit Azure Cache für Redis herzustellen:

  1. Fügen Sie dem Projekt die folgende Abhängigkeit hinzu. Dies schließt automatisch die spring-boot-starter Abhängigkeit in Ihr Projekt transitiv ein.

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

    Anmerkung

    Denken Sie daran, die BOM-spring-cloud-azure-dependencies zusammen mit der oben genannten Abhängigkeit hinzuzufügen. Weitere Informationen finden Sie im Abschnitt Erste Schritte abschnitt des Spring Cloud Azure-Entwicklerhandbuchs.

  1. Konfigurieren Sie die folgenden Eigenschaften in Ihrer application.yml Datei:

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

Proben

Sehen Sie sich die Azure-spring-boot-samples Repository auf GitHub an.