Delen via


Azure Cache voor Redis integreren met Service Connector

U kunt Azure Cache voor Redis verbinden met andere cloudservices met behulp van serviceconnector. Dit artikel bevat een overzicht van ondersteunde verificatiemethoden en -clients en bevat voorbeeldcode. Er worden ook standaardnamen en waarden van omgevingsvariabelen (of Spring Boot-configuratie) weergegeven die u krijgt wanneer u de serviceverbinding maakt.

Ondersteunde rekenservices

U kunt Service Connector gebruiken om de volgende rekenservices te verbinden met Azure Cache voor Redis:

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

Ondersteunde verificatie- en clienttypen

In de volgende tabel ziet u welke combinaties van verificatiemethoden en clients worden ondersteund voor het verbinden van uw rekenservice met Azure Cache voor Redis met behulp van serviceconnector. Ja betekent dat de combinatie wordt ondersteund. Nee betekent dat dit niet wordt ondersteund.

Client-type Door het systeem toegewezen beheerde identiteit Door de gebruiker toegewezen beheerde identiteit Geheim/verbindingsreeks Service-principal
.NET Ja Ja Ja Ja
Go Nee No Ja Nr.
Java Ja Ja Ja Ja
Java - Spring Boot Nee No Ja Nr.
Node.js Ja Ja Ja Ja
Python Ja Ja Ja Ja
Geen Ja Ja Ja Ja

Alle clienttypen, met uitzondering van Go en Java - Spring Boot, kunnen gebruikmaken van een van de verificatiemethoden waarnaar in de tabel wordt verwezen om verbinding te maken met Azure Cache voor Redis met behulp van serviceconnector. De enige ondersteunde verificatiemethoden voor Go en Java - Spring Boot zijn geheim/verbindingsreeks of service-principal.

Namen van standaardomgevingsvariabelen of toepassingseigenschappen en voorbeeldcode

Gebruik de volgende namen van omgevingsvariabelen en toepassingseigenschappen om rekenservices te verbinden met uw Redis-server. Raadpleeg het artikel interne kenmerken van serviceconnector voor meer informatie over naamconventies .

Door het systeem toegewezen beheerde identiteit

Naam van standaardomgevingsvariabele Beschrijving Voorbeeldwaarde
AZURE_REDIS_HOST Redis-eindpunt <RedisName>.redis.cache.windows.net

Voorbeeldcode

De volgende stappen en code laten zien hoe u een door het systeem toegewezen beheerde identiteit gebruikt om verbinding te maken met Redis.

  1. Installeer afhankelijkheden.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Voeg de verificatielogica toe met omgevingsvariabelen die zijn ingesteld door Service Connector. Zie de extensie Microsoft.Azure.StackExchangeRedis voor meer informatie.

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

Door de gebruiker toegewezen beheerde identiteit

Naam van standaardomgevingsvariabele Beschrijving Voorbeeldwaarde
AZURE_REDIS_HOST Redis-eindpunt <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID Client-id voor beheerde identiteit <client-ID>

Voorbeeldcode

De volgende stappen en code laten zien hoe u een door de gebruiker toegewezen beheerde identiteit gebruikt om verbinding te maken met Redis.

  1. Installeer afhankelijkheden.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Voeg de verificatielogica toe met omgevingsvariabelen die zijn ingesteld door Service Connector. Zie de extensie Microsoft.Azure.StackExchangeRedis voor meer informatie.

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

Connection string

Waarschuwing

U wordt aangeraden de veiligste verificatiestroom te gebruiken die beschikbaar is. De hier beschreven verificatiestroom vereist een zeer hoge mate van vertrouwen in de toepassing en brengt risico's met zich mee die niet aanwezig zijn in andere stromen. U moet deze stroom alleen gebruiken wanneer veiligere stromen, zoals beheerde identiteiten, niet haalbaar zijn.

Naam van standaardomgevingsvariabele Beschrijving Voorbeeldwaarde
AZURE_REDIS_CONNECTIONSTRING StackExchange.Redisverbindingsreeks <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

Voorbeeldcode

De volgende stappen en code laten zien hoe u een verbindingsreeks gebruikt om verbinding te maken met Azure Cache voor Redis.

  1. Installeer afhankelijkheden.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. Haal de verbindingsreeks op uit de omgevingsvariabele die is toegevoegd door Service Connector.

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

Service-principal

Naam van standaardomgevingsvariabele Beschrijving Voorbeeldwaarde
AZURE_REDIS_HOST Redis-eindpunt <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID Client-id van de Service Principal <client-ID>
AZURE_REDIS_CLIENTSECRET Geheim van de service-principal <client-secret>
AZURE_REDIS_TENANTID Tenant-id van de service-principal <tenant-id>

Voorbeeldcode

De volgende stappen en code laten zien hoe u een service-principal gebruikt om verbinding te maken met Redis.

  1. Installeer afhankelijkheden.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Voeg de verificatielogica toe met omgevingsvariabelen die zijn ingesteld door Service Connector. Zie de extensie Microsoft.Azure.StackExchangeRedis voor meer informatie.

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