Condividi tramite


Integrare Cache di Azure per Redis con Service Connector

È possibile connettere cache di Azure per Redis ad altri servizi cloud usando Service Connector. Questo articolo illustra i metodi e i client di autenticazione supportati e fornisce codice di esempio. Vengono inoltre visualizzati i nomi e i valori predefiniti delle variabili di ambiente (o configurazione spring boot) che si ottengono quando si crea la connessione al servizio.

Servizi di calcolo supportati

È possibile usare Service Connector per connettere i servizi di calcolo seguenti a cache di Azure per Redis:

  • Servizio app di Azure
  • App contenitore di Azure
  • Funzioni di Azure
  • Servizio Azure Kubernetes (AKS)
  • Azure Spring Apps

Autenticazione e tipi di client supportati

La tabella seguente illustra le combinazioni di metodi di autenticazione e client supportati per la connessione del servizio di calcolo a cache di Azure per Redis tramite Service Connector. "Sì" indica che la combinazione è supportata. "No" significa che non è supportato.

Tipo client Identità gestita assegnata dal sistema Identità gestita assegnata dall'utente Stringa di segreto/connessione Entità servizio
.NET
Go No No No
Java
Java - Spring Boot No No No
Node.js
Python
Nessuno

Tutti i tipi di client, ad eccezione di Go e Java - Spring Boot, possono usare uno dei metodi di autenticazione a cui si fa riferimento nella tabella per connettersi a cache di Azure per Redis tramite Service Connector. Gli unici metodi di autenticazione supportati per Go e Java - Spring Boot sono secret/stringa di connessione o entità servizio.

Nomi di variabili di ambiente predefiniti o proprietà dell'applicazione e codice di esempio

Usare i nomi delle variabili di ambiente e le proprietà dell'applicazione seguenti per connettere i servizi di calcolo al server Redis. Per altre informazioni sulle convenzioni di denominazione, vedere l'articolo Elementi interni di Service Connector.

Identità gestita assegnata dal sistema

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_REDIS_HOST Endpoint Redis <RedisName>.redis.cache.windows.net

Codice di esempio

I passaggi e il codice seguenti illustrano come usare un'identità gestita assegnata dal sistema per connettersi a Redis.

  1. Installare le dipendenze.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Aggiungere la logica di autenticazione con le variabili di ambiente impostate da Service Connector. Per altre informazioni, vedere Estensione 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);
    

Identità gestita assegnata dall'utente

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_REDIS_HOST Endpoint Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID ID client dell'identità gestita <client-ID>

Codice di esempio

I passaggi e il codice seguenti illustrano come usare un'identità gestita assegnata dall'utente per connettersi a Redis.

  1. Installare le dipendenze.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Aggiungere la logica di autenticazione con le variabili di ambiente impostate da Service Connector. Per altre informazioni, vedere Estensione 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);
    

Stringa di connessione

Avviso

È consigliabile usare il flusso di autenticazione più sicuro disponibile. Il flusso di autenticazione descritto qui richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi che non sono presenti in altri flussi. È consigliabile usare questo flusso solo quando i flussi più sicuri, ad esempio le identità gestite, non sono validi.

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_REDIS_CONNECTIONSTRING StackExchange.Redisstringa di connessione <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

Codice di esempio

I passaggi e il codice seguenti illustrano come usare un stringa di connessione per connettersi a cache di Azure per Redis.

  1. Installare le dipendenze.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. Ottenere la stringa di connessione dalla variabile di ambiente aggiunta da Service Connector.

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

Entità servizio

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_REDIS_HOST Endpoint Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID ID client dell'entità servizio <client-ID>
AZURE_REDIS_CLIENTSECRET Segreto dell'entità servizio <client-secret>
AZURE_REDIS_TENANTID ID tenant dell'entità servizio <tenant-id>

Codice di esempio

I passaggi e il codice seguenti illustrano come usare un'entità servizio per connettersi a Redis.

  1. Installare le dipendenze.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Aggiungere la logica di autenticazione con le variabili di ambiente impostate da Service Connector. Per altre informazioni, vedere Estensione 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);