Compartilhar via


Integrar o Cache do Azure para Redis com o Conector de serviço

Esta página mostra os métodos de autenticação e clientes com suporte e mostra um código de exemplo que é possível usar para conectar o Cache do Azure para Redis a outros serviços de nuvem usando o conector de serviço. Você ainda poderá se conectar ao Cache do Azure para Redis em outras linguagens de programação sem usar o Conector de serviço. Esta página também mostra nomes e valores da variável de ambiente padrão (ou configuração do Spring Boot) que você obtém ao criar a conexão de serviço.

Serviço de computação com suporte

O conector de serviço pode ser usado para conectar os seguintes serviços de computação ao Cache do Azure para Redis:

  • Serviço de Aplicativo do Azure
  • Aplicativos de Contêiner do Azure
  • Azure Functions
  • AKS (Serviço de Kubernetes do Azure)
  • Azure Spring Apps

Tipos de autenticação e tipos de cliente com suporte

A tabela abaixo mostra quais combinações de clientes e métodos de autenticação têm suporte para conectar o serviço de computação ao Cache do Azure para Redis usando o conector de serviço. “Sim” indica que a combinação tem suporte e “Não” indica que ela não tem.

Tipo de cliente Identidade gerenciada atribuída pelo sistema Identidade gerenciada atribuída pelo usuário Cadeia de conexão/segredo Entidade de serviço
.NET Sim Sim Sim Yes
Go Não No Sim Não
Java Sim Sim Sim Yes
Java – Spring Boot Não No Sim No
Node.js Sim Sim Sim Sim
Python Sim Sim Sim Yes
Nenhum Sim Sim Sim Sim

Esta tabela indica que o único método de autenticação com suporte para todos os tipos de cliente na tabela é o método Segredo/cadeia de conexão. Não há suporte para outros métodos de autenticação para que nenhum dos tipos de cliente se conecte ao Cache do Azure para Redis usando o conector de serviço.

Nomes de variáveis de ambiente padrão ou propriedades de aplicativo e código de exemplo

Usar os nomes de variável de ambiente e as propriedades de aplicativo listadas abaixo para conectar serviços de computação ao servidor Redis. Para cada exemplo abaixo, substitua os textos de espaço reservado <redis-server-name> e <redis-key> pelo nome do seu próprio servidor de Redis e chave. Para saber mais sobre as convenções de nomenclatura, confira o artigo Detalhes internos no conector de serviço.

Identidade gerenciada atribuída pelo sistema

Nome da variável de ambiente padrão Descrição Valor de exemplo
AZURE_REDIS_HOST Ponto de Extremidade Redis <RedisName>.redis.cache.windows.net

Código de exemplo

Confira as etapas e o código abaixo para se conectar ao Barramento de Serviço usando uma identidade gerenciada atribuída pelo sistema.

  1. Instale as dependências.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Adicione a lógica de autenticação com variáveis de ambiente definidas pelo Service Connector. Para obter mais informações, consulte a Extensão 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);
    

Identidade gerenciada atribuída pelo usuário

Nome da variável de ambiente padrão Descrição Valor de exemplo
AZURE_REDIS_HOST Ponto de Extremidade Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID ID do cliente da identidade gerenciada <client-ID>

Código de exemplo

Confira as etapas e o código abaixo para se conectar ao Barramento de Serviço usando uma identidade gerenciada atribuída pelo usuário.

  1. Instale as dependências.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Adicione a lógica de autenticação com variáveis de ambiente definidas pelo Service Connector. Para obter mais informações, consulte a Extensão 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);
    

Cadeia de conexão

Aviso

A Microsoft recomenda usar o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento exige um grau muito alto de confiança no aplicativo e traz riscos que não estão presentes em outros fluxos. Você só deve usar esse fluxo quando outros fluxos mais seguros, como identidades gerenciadas, não forem viáveis.

Nome da variável de ambiente padrão Descrição Valor de exemplo
AZURE_REDIS_CONNECTIONSTRING StackExchange. Cadeia de conexão Redis <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

Código de exemplo

Veja as etapas e o código abaixo para se conectar ao Cache do Azure para Redis usando uma cadeia de conexão.

  1. Instale as dependências.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. Obtenha a cadeia de conexão por meio da variável de ambiente adicionada pelo Conector de Serviço.

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

Entidade de Serviço

Nome da variável de ambiente padrão Descrição Valor de exemplo
AZURE_REDIS_HOST Ponto de Extremidade Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID ID de cliente da entidade de serviço <client-ID>
AZURE_REDIS_CLIENTSECRET Segredo da entidade de serviço <client-secret>
AZURE_REDIS_TENANTID ID do locatário da entidade de serviço <tenant-id>

Código de exemplo

Consulte as etapas e o código abaixo para se conectar ao Barramento de Serviço usando uma entidade de serviço.

  1. Instale as dependências.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Adicione a lógica de autenticação com variáveis de ambiente definidas pelo Service Connector. Para obter mais informações, consulte a Extensão 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);
    

Próximas etapas

Siga os tutoriais listados abaixo para saber mais sobre o Conector de Serviço.