Dela via


Integrera Azure Cache for Redis med Service Connector

Du kan ansluta Azure Cache for Redis till andra molntjänster med hjälp av Service Connector. Den här artikeln beskriver autentiseringsmetoder och klienter som stöds och innehåller exempelkod. Det visar också standardnamn och värden för miljövariabler (eller Spring Boot-konfiguration) som du får när du skapar tjänstanslutningen.

Beräkningstjänster som stöds

Du kan använda Service Connector för att ansluta följande beräkningstjänster till Azure Cache for Redis:

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

Autentiserings- och klienttyper som stöds

I följande tabell visas vilka kombinationer av autentiseringsmetoder och klienter som stöds för att ansluta beräkningstjänsten till Azure Cache for Redis med hjälp av Service Connector. "Ja" innebär att kombinationen stöds. "Nej" innebär att det inte stöds.

Klienttyp Systemtilldelad hanterad identitet Användartilldelad hanterad identitet Hemlighet/anslutningssträng Tjänstens huvudnamn
.NET Ja Ja Ja Ja
Go Nej Nej Ja Nej
Java Ja Ja Ja Ja
Java – Spring Boot Nej Nej Ja Nej
Node.js Ja Ja Ja Ja
Python Ja Ja Ja Ja
None Ja Ja Ja Ja

Alla klienttyper, förutom Go och Java – Spring Boot, kan använda någon av de autentiseringsmetoder som refereras i tabellen för att ansluta till Azure Cache for Redis med hjälp av Service Connector. De enda autentiseringsmetoder som stöds för Go och Java – Spring Boot är hemliga/anslutningssträng eller tjänstens huvudnamn.

Standardnamn för miljövariabler eller programegenskaper och exempelkod

Använd följande miljövariabelnamn och programegenskaper för att ansluta beräkningstjänster till Redis-servern. Mer information om namngivningskonventioner finns i artikeln interna serviceanslutningsprogram .

Systemtilldelad hanterad identitet

Standardnamn för miljövariabel beskrivning Exempelvärde
AZURE_REDIS_HOST Redis-slutpunkt <RedisName>.redis.cache.windows.net

Exempelkod

Följande steg och kod visar hur du använder en systemtilldelad hanterad identitet för att ansluta till Redis.

  1. Installera beroenden.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Lägg till autentiseringslogik med miljövariabler som anges av Service Connector. Mer information finns i Microsoft.Azure.StackExchangeRedis-tillägget.

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

Användartilldelad hanterad identitet

Standardnamn för miljövariabel beskrivning Exempelvärde
AZURE_REDIS_HOST Redis-slutpunkt <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID Klient-ID för hanterad identitet <client-ID>

Exempelkod

Följande steg och kod visar hur du använder en användartilldelad hanterad identitet för att ansluta till Redis.

  1. Installera beroenden.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Lägg till autentiseringslogik med miljövariabler som anges av Service Connector. Mer information finns i Microsoft.Azure.StackExchangeRedis-tillägget.

    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

Varning

Vi rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Autentiseringsflödet som beskrivs här kräver en mycket hög grad av förtroende för programmet och medför risker som inte finns i andra flöden. Du bör bara använda det här flödet när säkrare flöden, till exempel hanterade identiteter, inte är livskraftiga.

Standardnamn för miljövariabel beskrivning Exempelvärde
AZURE_REDIS_CONNECTIONSTRING StackExchange.Redisanslutningssträng <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

Exempelkod

Följande steg och kod visar hur du använder en anslutningssträng för att ansluta till Azure Cache for Redis.

  1. Installera beroenden.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. Hämta anslutningssträng från miljövariabeln som lagts till av Service Connector.

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

Tjänstens huvudnamn

Standardnamn för miljövariabel beskrivning Exempelvärde
AZURE_REDIS_HOST Redis-slutpunkt <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID Klientorganisations-ID för tjänstens huvudkonto <client-ID>
AZURE_REDIS_CLIENTSECRET Hemlighet för tjänstens huvudnamn <client-secret>
AZURE_REDIS_TENANTID Klientorganisations-ID för tjänstens huvudnamn <tenant-id>

Exempelkod

Följande steg och kod visar hur du använder ett huvudnamn för tjänsten för att ansluta till Redis.

  1. Installera beroenden.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Lägg till autentiseringslogik med miljövariabler som anges av Service Connector. Mer information finns i Microsoft.Azure.StackExchangeRedis-tillägget.

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