Sdílet prostřednictvím


Integrace služby Azure Cache for Redis s konektorem služby

Azure Cache for Redis můžete připojit k dalším cloudovým službám pomocí konektoru služby. Tento článek popisuje podporované metody ověřování a klienty a poskytuje vzorový kód. Zobrazí se také výchozí názvy proměnných prostředí a hodnoty (nebo konfigurace Spring Bootu), které získáte při vytváření připojení služby.

Podporované výpočetní služby

Konektor služby můžete použít k připojení následujících výpočetních služeb ke službě Azure Cache for Redis:

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

Podporované typy ověřování a klientů

Následující tabulka ukazuje, které kombinace metod ověřování a klientů se podporují pro připojení výpočetní služby ke službě Azure Cache for Redis pomocí konektoru služby. "Ano" znamená, že kombinace je podporovaná. "Ne" znamená, že se nepodporuje.

Typ klienta Spravovaná identita přiřazená systémem Spravovaná identita přiřazená uživatelem Tajný kód / připojovací řetězec Instanční objekt
.NET Ano Ano Ano Yes
Go No No Ano No
Java Ano Ano Ano Yes
Java – Spring Boot No No Ano No
Node.js Ano Ano Ano Yes
Python Ano Ano Ano Yes
Nic Ano Ano Ano Yes

Všechny typy klientů, s výjimkou Go a Java – Spring Boot, můžou použít některou z metod ověřování odkazovaných v tabulce k připojení ke službě Azure Cache for Redis pomocí konektoru služby. Jediné podporované metody ověřování pro Go a Javu – Spring Boot jsou tajné kódy nebo připojovací řetězec nebo instanční objekt.

Výchozí názvy proměnných prostředí nebo vlastnosti aplikace a ukázkový kód

Pomocí následujících názvů proměnných prostředí a vlastností aplikace připojte výpočetní služby k serveru Redis. Další informace o konvencích vytváření názvů najdete v interním článku o konektoru služby.

Spravovaná identita přiřazená systémem

Výchozí název proměnné prostředí Popis Ukázková hodnota
AZURE_REDIS_HOST Koncový bod Redis <RedisName>.redis.cache.windows.net

Ukázkový kód

Následující kroky a kód ukazují, jak použít spravovanou identitu přiřazenou systémem pro připojení k Redisu.

  1. Nainstalujte závislosti.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Přidejte logiku ověřování s proměnnými prostředí nastavenými konektorem Service Connector. Další informace naleznete v tématu Microsoft.Azure.StackExchangeRedis Extension.

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

Spravovaná identita přiřazená uživatelem

Výchozí název proměnné prostředí Popis Ukázková hodnota
AZURE_REDIS_HOST Koncový bod Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID ID klienta spravované identity <client-ID>

Ukázkový kód

Následující kroky a kód ukazují, jak se pomocí spravované identity přiřazené uživatelem připojit k Redisu.

  1. Nainstalujte závislosti.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Přidejte logiku ověřování s proměnnými prostředí nastavenými konektorem Service Connector. Další informace naleznete v tématu Microsoft.Azure.StackExchangeRedis Extension.

    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

Upozorňující

Doporučujeme používat nejbezpečnější dostupný tok ověřování. Zde popsaný tok ověřování vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok byste měli použít jenom v případě, že bezpečnější toky, jako jsou spravované identity, nejsou přijatelné.

Výchozí název proměnné prostředí Popis Příklad hodnoty
AZURE_REDIS_CONNECTIONSTRING StackExchange.Redispřipojovací řetězec <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

Ukázkový kód

Následující kroky a kód ukazují, jak se pomocí připojovací řetězec připojit ke službě Azure Cache for Redis.

  1. Nainstalujte závislosti.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. Získejte připojovací řetězec z proměnné prostředí přidané konektorem služby.

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

Instanční objekt

Výchozí název proměnné prostředí Popis Ukázková hodnota
AZURE_REDIS_HOST Koncový bod Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID ID klienta instančního objektu. <client-ID>
AZURE_REDIS_CLIENTSECRET Tajný kód instančního objektu <client-secret>
AZURE_REDIS_TENANTID ID tenanta instančního objektu <tenant-id>

Ukázkový kód

Následující kroky a kód ukazují, jak se pomocí instančního objektu připojit k Redis.

  1. Nainstalujte závislosti.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Přidejte logiku ověřování s proměnnými prostředí nastavenými konektorem Service Connector. Další informace naleznete v tématu Microsoft.Azure.StackExchangeRedis Extension.

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