Udostępnij za pośrednictwem


Zintegrować usługę Azure Cache for Redis z łącznikiem usług

W tym artykule opisano obsługiwane metody uwierzytelniania, klientów i przykładowy kod, którego można użyć do łączenia aplikacji z usługą Azure Cache for Redis przy użyciu usługi Service Connector.In tym artykule, znajdziesz również domyślne nazwy zmiennych środowiskowych, wartości i konfigurację uzyskaną podczas tworzenia połączeń usług.

Obsługiwane usługi obliczeniowe

Łącznik usługi umożliwia połączenie następujących usług obliczeniowych z usługą Azure Cache for Redis:

  • Azure App Service
  • Azure Container Apps
  • Azure Functions (Funkcje Azure)
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

Obsługiwane typy uwierzytelniania i klientów

W poniższej tabeli przedstawiono kombinacje metod uwierzytelniania i klientów obsługiwanych do łączenia usługi obliczeniowej z usługą Azure Cache for Redis przy użyciu łącznika usługi Service Connector. Wartość "Tak" oznacza, że kombinacja jest obsługiwana. Wartość "Nie" oznacza, że nie jest obsługiwana.

Typ klienta Zarządzana tożsamość przypisana przez system Tożsamość zarządzana przypisana przez użytkownika Klucz tajny/parametry połączenia Główny identyfikator usługi
.NET Tak Tak Tak Tak
Idź Nie Nie Tak Nie
Jawa Tak Tak Tak Tak
Java — Spring Boot Nie Nie Tak Nie
Node.js Tak Tak Tak Tak
Pyton Tak Tak Tak Tak
Brak Tak Tak Tak Tak

Domyślne nazwy zmiennych środowiskowych lub właściwości aplikacji i przykładowy kod

Użyj następujących nazw zmiennych środowiskowych i właściwości aplikacji, aby połączyć usługi obliczeniowe z serwerem Redis. Aby dowiedzieć się więcej na temat konwencji nazewnictwa, zapoznaj się z artykułem o wewnętrznych mechanizmach Service Connector.

Zarządzana tożsamość przypisana przez system

Domyślna nazwa zmiennej środowiskowej opis Przykładowa wartość
AZURE_REDIS_HOST Punkt końcowy usługi Redis <RedisName>.redis.cache.windows.net

Przykładowy kod

Poniższe kroki i kod pokazują, jak używać przypisanej przez system tożsamości zarządzanej w celu nawiązania połączenia z usługą Redis.

  1. Instalowanie zależności.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Dodaj logikę uwierzytelniania ze zmiennymi środowiskowymi ustawionymi przez łącznik usługi. Aby uzyskać więcej informacji, zobacz Rozszerzenie Microsoft.Azure.StackExchangeRedis.

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

Tożsamość zarządzana przypisana przez użytkownika

Domyślna nazwa zmiennej środowiskowej opis Przykładowa wartość
AZURE_REDIS_HOST Punkt końcowy usługi Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID Identyfikator klienta zarządzanej tożsamości <client-ID>

Przykładowy kod

Poniższe kroki i kod pokazują, jak używać tożsamości zarządzanej przypisanej przez użytkownika do nawiązywania połączenia z usługą Redis.

  1. Instalowanie zależności.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Dodaj logikę uwierzytelniania ze zmiennymi środowiskowymi ustawionymi przez łącznik usługi. Aby uzyskać więcej informacji, zobacz Rozszerzenie Microsoft.Azure.StackExchangeRedis.

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

ciąg połączenia

Ostrzeżenie

Zalecamy korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Opisany tutaj przepływ uwierzytelniania wymaga bardzo wysokiego poziomu zaufania w aplikacji i niesie ze sobą ryzyko, które nie są obecne w innych przepływach. Tego przepływu należy używać tylko wtedy, gdy bardziej bezpieczne przepływy, takie jak tożsamości zarządzane, nie są opłacalne.

Domyślna nazwa zmiennej środowiskowej opis Przykładowa wartość
AZURE_REDIS_CONNECTIONSTRING StackExchange.Redisłańcuch połączenia <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

Przykładowy kod

Poniższe kroki i kod pokazują, jak używać ciągu połączenia, aby połączyć się z usługą Azure Cache for Redis.

  1. Instalowanie zależności.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. Pobierz parametry połączenia ze zmiennej środowiskowej dodanej przez łącznik usługi.

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

Główny identyfikator usługi

Domyślna nazwa zmiennej środowiskowej opis Przykładowa wartość
AZURE_REDIS_HOST Punkt końcowy usługi Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID Identyfikator klienta zleceniodawcy usługi <client-ID>
AZURE_REDIS_CLIENTSECRET Sekret głównego obiektu usługi <client-secret>
AZURE_REDIS_TENANTID Identyfikator dzierżawy podmiotu usługi <tenant-id>

Przykładowy kod

Poniższe kroki i kod pokazują, jak używać głównego konta usługi do łączenia się z Redis.

  1. Instalowanie zależności.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Dodaj logikę uwierzytelniania ze zmiennymi środowiskowymi ustawionymi przez łącznik usługi. Aby uzyskać więcej informacji, zobacz Rozszerzenie Microsoft.Azure.StackExchangeRedis.

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