Udostępnij za pośrednictwem


Integrowanie usługi Azure Cache for Redis z łącznikiem usługi

Możesz połączyć usługę Azure Cache for Redis z innymi usługami w chmurze przy użyciu łącznika usługi. W tym artykule opisano obsługiwane metody uwierzytelniania i klientów oraz przedstawiono przykładowy kod. Ujawnia również domyślne nazwy zmiennych środowiskowych i wartości (lub konfigurację platformy Spring Boot) uzyskaną podczas tworzenia połączenia z 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
  • 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 Tożsamość zarządzana przypisana przez system Tożsamość zarządzana przypisana przez użytkownika Wpis tajny/parametry połączenia Jednostka usługi
.NET Tak Tak Tak Tak
Go Nie Nie. Tak Nie.
Java Tak Tak Tak Tak
Java — Spring Boot Nie Nie. Tak Nie.
Node.js Tak Tak Tak Tak
Python Tak Tak Tak Tak
None Tak Tak Tak Tak

Wszystkie typy klientów, z wyjątkiem języka Go i Języka Java — Spring Boot, mogą używać dowolnej metody uwierzytelniania, do których odwołuje się tabela, aby nawiązać połączenie z usługą Azure Cache for Redis przy użyciu łącznika usługi Service Connector. Jedynymi obsługiwanymi metodami uwierzytelniania dla języka Go i języka Java — Spring Boot są wpisy tajne/parametry połączenia lub jednostka usługi.

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 Dotyczącym wewnętrznych łączników usług.

Tożsamość zarządzana 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 tożsamości zarządzanej <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);
    

Connection string

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.Redisparametry 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ć parametry połączenia do nawiązywania połączenia 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);
    

Jednostka 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 Wpis tajny jednostki usługi <client-secret>
AZURE_REDIS_TENANTID Identyfikator dzierżawy jednostki usługi <tenant-id>

Przykładowy kod

Poniższe kroki i kod pokazują, jak używać jednostki usługi 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);