Partager via


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

Cette page présente les méthodes d’authentification et les clients pris en charge, et présente des exemples de code que vous pouvez utiliser pour connecter Azure Cache pour Redis à d’autres services cloud en utilisant le connecteur de services. Vous pouvez toujours vous connecter à Azure Cache pour Redis dans d’autres langages de programmation sans utiliser le connecteur de services. Cette page présente également les noms et les valeurs des variables d’environnement par défaut (ou configuration Spring Boot) que vous obtenez lorsque vous créez des connexions de service.

Service de calcul pris en charge

Le connecteur de services peut être utilisé 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 clients pris en charge

Le tableau ci-dessous 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 » indique que la combinaison est prise en charge, tandis que « Non » indique 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

Ce tableau indique que la seule méthode d’authentification prise en charge pour tous les types clients dans le tableau est la méthode par secret/chaîne de connexion. D’autres méthodes d’authentification ne sont prises en charge pour aucun type client pour se connecter à Azure Cache pour Redis à l’aide du connecteur de services.

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 répertoriées ci-dessous pour connecter des services de calcul au serveur Redis. Pour chaque exemple ci-dessous, remplacez les textes des espaces réservés <redis-server-name> et <redis-key> par le nom et la clé de votre propre serveur Redis. Pour plus d’informations 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

Reportez-vous aux étapes et au code ci-dessous pour vous connecter à Redis à l’aide d’une identité managée affectée par le système.

  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

Reportez-vous aux étapes et au code ci-dessous pour vous connecter à Redis à l’aide d’une identité managée affectée par l’utilisateur.

  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

Microsoft vous recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d'authentification décrit dans cette procédure demande un degré de confiance très élevé dans l'application et comporte des risques qui ne sont pas présents dans d'autres flux. Vous ne devez utiliser ce flux que si d’autres 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 Valeur d'exemple
AZURE_REDIS_CONNECTIONSTRING StackExchange. Chaîne de connexion Redis <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

Exemple de code

Reportez-vous aux étapes et au code ci-dessous pour vous connecter à Azure Cache pour Redis à l’aide d’une chaîne de connexion.

  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

Reportez-vous aux étapes et au code ci-dessous pour vous connecter à Redis à l’aide d’un principal de service.

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

Étapes suivantes

Suivez les tutoriels ci-dessous pour en savoir plus sur Service Connector.