Freigeben über


Integrieren von Azure Cache for Redis in Service Connector

Sie können Azure Cache for Redis mit anderen Clouddiensten verbinden, indem Sie Dienstconnector verwenden. Dieser Artikel beschreibt unterstützte Authentifizierungsmethoden und Clients und stellt Beispielcode bereit. Es werden auch die Namen und Werte der Standardumgebungsvariablen (oder die Spring Boot-Konfiguration) angezeigt, die Sie erhalten, wenn Sie die Dienstverbindung erstellen.

Unterstützte Computedienste

Mit Dienstconnector können Sie die folgenden Computedienste mit Azure Cache for Redis verbinden:

  • Azure App Service
  • Azure Container Apps
  • Azure-Funktionen
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

Unterstützte Authentifizierungs- und Clienttypen

Die folgende Tabelle zeigt, welche Kombinationen von Authentifizierungsmethoden und Clients für die Verbindung Ihres Computediensts mit Azure Cache for Redis mithilfe von Dienstconnector unterstützt werden. „Ja“ bedeutet, dass die Kombination unterstützt wird. „Nein“ bedeutet, dass sie nicht unterstützt wird.

Clienttyp Systemseitig zugewiesene verwaltete Identität Benutzerseitig zugewiesene verwaltete Identität Geheimnis/Verbindungszeichenfolge Dienstprinzipal
.NET Ja Ja Ja Ja
Go No Nein Ja No
Java Ja Ja Ja Ja
Java - Spring Boot No Nein Ja No
Node.js Ja Ja Ja Ja
Python Ja Ja Ja Ja
Keine Ja Ja Ja Ja

Alle Clienttypen, mit Ausnahme von Go und Java – Spring Boot, können alle in der Tabelle aufgeführten Authentifizierungsmethoden verwenden, um mithilfe von Dienstconnector eine Verbindung mit Azure Cache for Redis herzustellen. Die einzigen unterstützten Authentifizierungsmethoden für Go und Java – Spring Boot sind Geheimnis/Verbindungszeichenfolge oder Dienstprinzipal.

Namen von Standard-Umgebungsvariablen oder Anwendungseigenschaften und Beispielcode

Verwenden Sie die folgenden Umgebungsvariablennamen und Anwendungseigenschaften, um Computedienste mit Ihrem Redis-Server zu verbinden. Um mehr über Benennungskonventionen zu erfahren, lesen Sie den Artikel Dienstconnector-Interna.

Systemseitig zugewiesene verwaltete Identität

Standardname der Umgebungsvariablen Beschreibung Beispielwert
AZURE_REDIS_HOST Redis-Endpunkt <RedisName>.redis.cache.windows.net

Beispielcode

Die folgenden Schritte und der folgende Code zeigen Ihnen, wie Sie eine systemseitig zugewiesene verwaltete Identität verwenden, um eine Verbindung mit Redis herzustellen.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Fügen Sie die Authentifizierungslogik mit vom Dienstconnector festgelegten Umgebungsvariablen hinzu. Weitere Informationen finden Sie unter der Microsoft.Azure.StackExchangeRedis-Erweiterung.

    using StackExchange.Redis;
    var cacheHostName = Environment.GetEnvironmentVariable("AZURE_REDIS_HOST");
    var configurationOptions = ConfigurationOptions.Parse($"{cacheHostName}:6380");
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // For system-assigned identity.
    // await configurationOptions.ConfigureForAzureWithTokenCredentialAsync(new DefaultAzureCredential());
    
    // For user-assigned identity.
    // var managedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_REDIS_CLIENTID");
    // await configurationOptions.ConfigureForAzureWithUserAssignedManagedIdentityAsync(managedIdentityClientId);
    
    // Service principal secret.
    // var clientId = Environment.GetEnvironmentVariable("AZURE_REDIS_CLIENTID");
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_REDIS_TENANTID");
    // var secret = Environment.GetEnvironmentVariable("AZURE_REDIS_CLIENTSECRET");
    // await configurationOptions.ConfigureForAzureWithServicePrincipalAsync(clientId, tenantId, secret);
    
    
    var connectionMultiplexer = await ConnectionMultiplexer.ConnectAsync(configurationOptions);
    

Benutzerseitig zugewiesene verwaltete Identität

Standardname der Umgebungsvariablen Beschreibung Beispielwert
AZURE_REDIS_HOST Redis-Endpunkt <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID Client-ID der verwalteten Identität <client-ID>

Beispielcode

Die folgenden Schritte und der folgende Code zeigen Ihnen, wie Sie eine benutzerseitig zugewiesene verwaltete Identität verwenden, um eine Verbindung mit Redis herzustellen.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Fügen Sie die Authentifizierungslogik mit vom Dienstconnector festgelegten Umgebungsvariablen hinzu. Weitere Informationen finden Sie unter der Microsoft.Azure.StackExchangeRedis-Erweiterung.

    using StackExchange.Redis;
    var cacheHostName = Environment.GetEnvironmentVariable("AZURE_REDIS_HOST");
    var configurationOptions = ConfigurationOptions.Parse($"{cacheHostName}:6380");
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // For system-assigned identity.
    // await configurationOptions.ConfigureForAzureWithTokenCredentialAsync(new DefaultAzureCredential());
    
    // For user-assigned identity.
    // var managedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_REDIS_CLIENTID");
    // await configurationOptions.ConfigureForAzureWithUserAssignedManagedIdentityAsync(managedIdentityClientId);
    
    // Service principal secret.
    // var clientId = Environment.GetEnvironmentVariable("AZURE_REDIS_CLIENTID");
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_REDIS_TENANTID");
    // var secret = Environment.GetEnvironmentVariable("AZURE_REDIS_CLIENTSECRET");
    // await configurationOptions.ConfigureForAzureWithServicePrincipalAsync(clientId, tenantId, secret);
    
    
    var connectionMultiplexer = await ConnectionMultiplexer.ConnectAsync(configurationOptions);
    

Connection string

Warnung

Wir empfehlen Ihnen, den sichersten verfügbaren Authentifizierungsflow zu verwenden. Der hier beschriebene Authentifizierungsflow erfordert ein sehr hohes Maß an Vertrauen in die Anwendung und birgt Risiken, die in anderen Flows nicht vorhanden sind. Sie sollten diesen Flow nur verwenden, wenn sicherere Flows, z. B. verwaltete Identitäten, nicht praktikabel sind.

Standardname der Umgebungsvariablen Beschreibung Beispielswert
AZURE_REDIS_CONNECTIONSTRING StackExchange.Redis-Verbindungszeichenfolge <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

Beispielcode

Die folgenden Schritte und der folgende Code zeigen Ihnen, wie Sie eine Verbindungszeichenfolge verwenden, um eine Verbindung mit Azure Cache for Redis herzustellen.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. Rufen Sie die Verbindungszeichenfolge aus der Umgebungsvariablen ab, die vom Dienstconnector hinzugefügt wurde.

    using StackExchange.Redis;
    var connectionString = Environment.GetEnvironmentVariable("AZURE_REDIS_CONNECTIONSTRING");
    var _redisConnection = await RedisConnection.InitializeAsync(connectionString: connectionString);
    

Dienstprinzipal

Standardname der Umgebungsvariablen Beschreibung Beispielwert
AZURE_REDIS_HOST Redis-Endpunkt <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID Client-ID des Dienstprinzipals <client-ID>
AZURE_REDIS_CLIENTSECRET Geheimnis des Dienstprinzipals <client-secret>
AZURE_REDIS_TENANTID Mandanten-ID des Dienstprinzipals <tenant-id>

Beispielcode

Die folgenden Schritte und der folgende Code zeigen Ihnen, wie Sie einen Dienstprinzipal zum Herstellen einer Verbindung mit Redis verwenden.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Fügen Sie die Authentifizierungslogik mit vom Dienstconnector festgelegten Umgebungsvariablen hinzu. Weitere Informationen finden Sie unter der Microsoft.Azure.StackExchangeRedis-Erweiterung.

    using StackExchange.Redis;
    var cacheHostName = Environment.GetEnvironmentVariable("AZURE_REDIS_HOST");
    var configurationOptions = ConfigurationOptions.Parse($"{cacheHostName}:6380");
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // For system-assigned identity.
    // await configurationOptions.ConfigureForAzureWithTokenCredentialAsync(new DefaultAzureCredential());
    
    // For user-assigned identity.
    // var managedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_REDIS_CLIENTID");
    // await configurationOptions.ConfigureForAzureWithUserAssignedManagedIdentityAsync(managedIdentityClientId);
    
    // Service principal secret.
    // var clientId = Environment.GetEnvironmentVariable("AZURE_REDIS_CLIENTID");
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_REDIS_TENANTID");
    // var secret = Environment.GetEnvironmentVariable("AZURE_REDIS_CLIENTSECRET");
    // await configurationOptions.ConfigureForAzureWithServicePrincipalAsync(clientId, tenantId, secret);
    
    
    var connectionMultiplexer = await ConnectionMultiplexer.ConnectAsync(configurationOptions);