Partilhar via


Integrar o Cache Redis do Azure com o Service Connector

Esta página mostra os métodos de autenticação e os clientes suportados e mostra o código de exemplo que pode utilizar para ligar a Cache Redis do Azure a outros serviços de nuvem utilizando o Service Connector. Talvez você ainda consiga se conectar ao Cache Redis do Azure em outras linguagens de programação sem usar o Service Connector. Esta página também mostra nomes e valores de variáveis de ambiente padrão (ou configuração do Spring Boot) que você obtém quando cria a conexão de serviço.

Serviços de computação suportados

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

  • Serviço de Aplicações do Azure
  • Azure Container Apps
  • Funções do Azure
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

Tipos de autenticação suportados e tipos de cliente

A tabela abaixo mostra quais combinações de métodos de autenticação e clientes têm suporte para conectar seu serviço de computação ao Cache Redis do Azure usando o Service Connector. Um "Sim" indica que a combinação é suportada, enquanto um "Não" indica que ela não é suportada.

Tipo de cliente Identidade gerida atribuída pelo sistema Identidade gerida atribuída pelo utilizador Segredo / cadeia de conexão Service principal (Principal de serviço)
.NET Sim Sim Sim Sim
Go No No Sim No
Java Sim Sim Sim Sim
Java - Arranque primavera No No Sim No
Node.js Sim Sim Sim Sim
Python Sim Sim Sim Sim
Nenhuma Sim Sim Sim Sim

Esta tabela indica que o único método de autenticação suportado para todos os tipos de cliente na tabela é o método Secret / connection string. Não há suporte para outros métodos de autenticação para nenhum dos tipos de cliente para se conectar ao Cache Redis do Azure usando o Service Connector.

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

Use os nomes das variáveis de ambiente e as propriedades do aplicativo listadas abaixo para conectar serviços de computação ao Servidor Redis. Para cada exemplo abaixo, substitua os textos <redis-server-name>de espaço reservado e <redis-key> pelo seu próprio nome e chave do servidor Redis. Para obter mais informações sobre convenções de nomenclatura, consulte o artigo interno do Service Connector.

Identidade gerida atribuída pelo sistema

Nome da variável de ambiente padrão Description Valores de exemplo
AZURE_REDIS_HOST Ponto de extremidade Redis <RedisName>.redis.cache.windows.net

Código de exemplo

Consulte as etapas e o código abaixo para se conectar ao Redis usando uma identidade gerenciada atribuída ao sistema.

  1. Instale 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 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 gerida atribuída pelo utilizador

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

Código de exemplo

Consulte as etapas e o código abaixo para se conectar ao Redis usando uma identidade gerenciada atribuída pelo usuário.

  1. Instale 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 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 Ligação

Aviso

A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento requer um grau muito alto de confiança no aplicativo e acarreta 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 Description 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

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

  1. Instale dependências.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. Obtenha a cadeia de conexão da variável de ambiente adicionada pelo Service Connector.

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

Principal de Serviço

Nome da variável de ambiente padrão Description Valores de exemplo
AZURE_REDIS_HOST Ponto de extremidade Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID ID do cliente da entidade de serviço <client-ID>
AZURE_REDIS_CLIENTSECRET segredo do responsável pelo serviço principal <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 Redis usando uma entidade de serviço.

  1. Instale 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 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óximos passos

Siga os tutoriais listados abaixo para saber mais sobre o Service Connector.