Compartir a través de


Integración de Azure Cache for Redis con Service Connector

Puede conectar Azure Cache for Redis a otros servicios en la nube mediante Service Connector. En este artículo se describen los métodos de autenticación y los clientes admitidos y se proporciona código de ejemplo. También revela los nombres y valores predeterminados de las variables de entorno (o la configuración de Spring Boot) que obtiene al crear la conexión de servicio.

Servicios de proceso admitidos

Puede usar Service Connector para conectar los siguientes servicios de proceso a Azure Cache for Redis:

  • Azure App Service
  • Azure Container Apps
  • Funciones de Azure
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

Tipos de cliente y autenticación admitidos

En la tabla siguiente se muestran las combinaciones de métodos de autenticación y clientes que se admiten para conectar el servicio de proceso a Azure Cache for Redis mediante Service Connector. "Sí" significa que se admite la combinación. "No" significa que no se admite.

Tipo de cliente Identidad administrada asignada por el sistema Identidad administrada asignada por el usuario Secreto/cadena de conexión Entidad de servicio
.NET
Go No No No
Java
Java: Spring Boot No No No
Node.js
Python
None

Todos los tipos de cliente, excepto Go y Java: Spring Boot, pueden usar cualquiera de los métodos de autenticación a los que se hace referencia en la tabla para conectarse a Azure Cache for Redis mediante Service Connector. Los únicos métodos de autenticación admitidos para Go y Java: Spring Boot son secretos o cadenas de conexión o entidad de servicio.

Nombres de variables de entorno predeterminados o propiedades de aplicación y código de ejemplo

Use los siguientes nombres de variables de entorno y propiedades de aplicación para conectar los servicios de proceso al servidor de Redis. Para más información sobre las convenciones de nomenclatura, consulte el artículo Service Connector internals ().

Identidad administrada asignada por el sistema

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
AZURE_REDIS_HOST Punto de conexión de Redis <RedisName>.redis.cache.windows.net

Código de ejemplo

Los pasos y el código siguientes muestran cómo usar una identidad administrada asignada por el sistema para conectarse a Redis.

  1. Instale las dependencias.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Agregue la lógica de autenticación con variables de entorno establecidas por Service Connector. Para obtener más información, consulte Extensión 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);
    

Identidad administrada asignada por el usuario

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
AZURE_REDIS_HOST Punto de conexión de Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID Identificador de cliente de identidad administrada <client-ID>

Código de ejemplo

Los pasos y el código siguientes muestran cómo usar una identidad administrada asignada por el usuario para conectarse a Redis.

  1. Instale las dependencias.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Agregue la lógica de autenticación con variables de entorno establecidas por Service Connector. Para obtener más información, consulte Extensión 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);
    

Cadena de conexión

Advertencia

Se recomienda usar el flujo de autenticación más seguro disponible. El flujo de autenticación descrito aquí requiere un grado de confianza muy alto en la aplicación y conlleva riesgos que no están presentes en otros flujos. Este flujo solo se debe usar cuando los flujos más seguros, como las identidades administradas, no son viables.

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
AZURE_REDIS_CONNECTIONSTRING StackExchange.Redis cadena de conexión <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

Código de ejemplo

Los pasos y el código siguientes muestran cómo usar una cadena de conexión para conectarse a Azure Cache for Redis.

  1. Instale las dependencias.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. Obtenga la cadena de conexión de la variable de entorno agregada por el conector de servicio.

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

Entidad de servicio

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
AZURE_REDIS_HOST Punto de conexión de Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID Id. de cliente de la entidad de servicio <client-ID>
AZURE_REDIS_CLIENTSECRET Secreto de la entidad de servicio <client-secret>
AZURE_REDIS_TENANTID Identificador de inquilino de la entidad de servicio <tenant-id>

Código de ejemplo

Los pasos y el código siguientes muestran cómo usar una entidad de servicio para conectarse a Redis.

  1. Instale las dependencias.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Agregue la lógica de autenticación con variables de entorno establecidas por Service Connector. Para obtener más información, consulte Extensión 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);