Partager via


Intégrer Azure Cache pour Redis avec le connecteur de services

Vous pouvez connecter Azure Cache pour Redis à d’autres services cloud à l’aide du connecteur de services. Cet article décrit les méthodes d’authentification et les clients pris en charge, puis fournit un exemple de code. Il révèle également les noms et les valeurs des variables d’environnement par défaut (ou configuration Spring Boot) que vous obtenez lorsque vous créez la connexion de services.

Service de calcul pris en charge

Vous pouvez utiliser le connecteur de services pour connecter les services de calcul suivants à Azure Cache pour Redis :

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

Types d’authentification et de client pris en charge

Le tableau suivant montre quelles combinaisons de méthodes d’authentification et de clients sont prises en charge pour connecter votre service de calcul à Azure Cache pour Redis à l’aide du connecteur de services. « Oui » signifie que la combinaison est prise en charge. « Non » signifie qu’elle n’est pas prise en charge.

Type de client Identité managée affectée par le système Identité managée affectée par l’utilisateur Secret / chaîne de connexion Principal du service
.NET Oui Oui Oui Oui
Go Non Non Oui Non
Java Oui Oui Oui Oui
Java - Spring Boot Non Non Oui Non
Node.JS Oui Oui Oui Oui
Python Oui Oui Oui Oui
Aucun Oui Oui Oui Oui

Tous les types de client, à l’exception de Go et Java - Spring Boot, peuvent utiliser l’une des méthodes d’authentification référencées dans le tableau pour se connecter à Azure Cache pour Redis à l’aide du connecteur de services. Les seules méthodes d’authentification prises en charge pour Go et Java - Spring Boot sont secret/chaîne de connexion ou principal de service.

Noms des variables d’environnement par défaut ou propriétés de l’application et exemple de code

Utilisez les noms des variables d’environnement et les propriétés d’application suivants pour connecter des services de calcul à votre serveur Redis. Pour en savoir plus sur les conventions d’affectation de noms, consultez l’article Services internes du connecteur de services.

Identité managée affectée par le système

Nom de variable d’environnement par défaut Description Exemple de valeur
AZURE_REDIS_HOST Point de terminaison Redis <RedisName>.redis.cache.windows.net

Exemple de code

Les étapes et le code suivants vous montrent comment utiliser une identité managée affectée par le système pour se connecter à Redis.

  1. Installez des dépendances.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Ajoutez la logique d’authentification avec les variables d’environnement définies par le connecteur de services. Pour plus d’information, consultez Extension 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é managée affectée par l’utilisateur

Nom de variable d’environnement par défaut Description Exemple de valeur
AZURE_REDIS_HOST Point de terminaison Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID ID client de l’identité managée <client-ID>

Exemple de code

Les étapes et le code suivants vous montrent comment utiliser une identité managée affectée par l’utilisateur pour se connecter à Redis.

  1. Installez des dépendances.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Ajoutez la logique d’authentification avec les variables d’environnement définies par le connecteur de services. Pour plus d’information, consultez Extension 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);
    

Chaîne de connexion

Avertissement

Nous vous recommandons d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d’authentification décrit ici nécessite un degré très élevé de confiance dans l’application et comporte des risques qui ne sont pas présents dans les autres flux. Vous devez utiliser ce flux seulement si des flux plus sécurisés, tels que les identités managées, ne sont pas viables.

Nom de variable d’environnement par défaut Description Exemple de valeur
AZURE_REDIS_CONNECTIONSTRING Chaîne de connexion StackExchange.Redis <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

Exemple de code

Les étapes et le code suivants vous montrent comment utiliser une chaîne de connexion pour vous connecter à Azure Cache pour Redis.

  1. Installez des dépendances.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. Obtenez la chaîne de connexion à partir de la variable d’environnement ajoutée par le connecteur de services.

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

Principal du service

Nom de variable d’environnement par défaut Description Exemple de valeur
AZURE_REDIS_HOST Point de terminaison Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID ID client du principal de service <client-ID>
AZURE_REDIS_CLIENTSECRET Secret du principal de service <client-secret>
AZURE_REDIS_TENANTID ID de locataire du principal de service <tenant-id>

Exemple de code

Les étapes et le code suivants vous montrent comment utiliser un principal de service pour vous connecter à Redis.

  1. Installez des dépendances.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Ajoutez la logique d’authentification avec les variables d’environnement définies par le connecteur de services. Pour plus d’information, consultez Extension 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);