Spring Cloud Azure Redis-Unterstützung

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 einen In-Memory-Datenspeicher bereit, der auf der Redis-Software basiert. 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. wahr 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.

Verbinden Sie sich kennwortlos mit Azure Cache for Redis

  1. Fügen Sie dem Projekt die folgende Abhängigkeit hinzu. Diese Konfiguration bindet die spring-boot-starter-Abhängigkeit automatisch transitiv in Ihr Projekt 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

    Denken Sie daran, die spring-cloud-azure-dependencies BOM zusammen mit dieser 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

    Die 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 sowie den Wert für username finden Sie im Abschnitt Microsoft Entra ID-Authentifizierung für Ihren Cache aktivieren von Verwenden von 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 eine benutzerseitig zugewiesene verwaltete Identität verwenden, müssen Sie auch die Eigenschaft spring.cloud.azure.credential.client-id hinzufügen und dabei die Client-ID Ihrer benutzerseitig zugewiesenen verwalteten Identität angeben.

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. Diese Konfiguration bindet die Abhängigkeit spring-boot-starter automatisch transitiv in Ihr Projekt 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 spring-cloud-azure-dependencies BOM zusammen mit dieser 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 das azure-spring-boot-samples Repository auf GitHub an.