Aracılığıyla paylaş


Redis için Azure Cache Service Connector ile tümleştirme

Hizmet Bağlayıcısı'nı kullanarak Redis için Azure Cache diğer bulut hizmetlerine bağlayabilirsiniz. Bu makalede desteklenen kimlik doğrulama yöntemleri ve istemcileri özetlenmektedir ve örnek kod sağlanmaktadır. Ayrıca, hizmet bağlantısını oluştururken elde ettiğiniz varsayılan ortam değişkeni adlarını ve değerlerini (veya Spring Boot yapılandırması) gösterir.

Desteklenen işlem hizmetleri

Service Connector'ı kullanarak aşağıdaki işlem hizmetlerini Redis için Azure Cache bağlayabilirsiniz:

  • Azure App Service
  • Azure Container Apps
  • Azure İşlevleri
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

Desteklenen kimlik doğrulaması ve istemci türleri

Aşağıdaki tabloda, hizmet bağlayıcısını kullanarak işlem hizmetinizi Redis için Azure Cache bağlamak için hangi kimlik doğrulama yöntemlerinin ve istemcilerinin desteklendiği gösterilmektedir. "Evet", birleşimin desteklendiği anlamına gelir. "Hayır", desteklenmediğini gösterir.

İstemci türü Sistem tarafından atanan yönetilen kimlik Kullanıcı tarafından atanan yönetilen kimlik Gizli dizi / bağlantı dizesi Hizmet sorumlusu
.NET Yes Evet Evet Yes
Go Hayır Hayır Evet Hayır
Java Yes Evet Evet Yes
Java - Spring Boot Hayır Hayır Evet Hayır
Node.js Yes Evet Evet Yes
Python Yes Evet Evet Yes
Hiçbiri Yes Evet Evet Yes

Go ve Java - Spring Boot dışındaki tüm istemci türleri, Service Connector kullanarak Redis için Azure Cache bağlanmak için tabloda başvuruda bulunan kimlik doğrulama yöntemlerinden herhangi birini kullanabilir. Go ve Java - Spring Boot için desteklenen tek kimlik doğrulama yöntemleri gizli / bağlantı dizesi veya hizmet sorumlusu'dır.

Varsayılan ortam değişkeni adları veya uygulama özellikleri ve örnek kod

İşlem hizmetlerini Redis sunucunuza bağlamak için aşağıdaki ortam değişkeni adlarını ve uygulama özelliklerini kullanın. Adlandırma kuralları hakkında daha fazla bilgi edinmek için Hizmet Bağlayıcısı iç bilgileri makalesine bakın.

Sistem tarafından atanan yönetilen kimlik

Varsayılan ortam değişkeni adı Açıklama Örnek değer
AZURE_REDIS_HOST Redis uç noktası <RedisName>.redis.cache.windows.net

Örnek kod

Aşağıdaki adımlar ve kod, Redis'e bağlanmak için sistem tarafından atanan yönetilen kimliğin nasıl kullanılacağını gösterir.

  1. Bağımlılıkları yükleyin.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Hizmet Bağlayıcısı tarafından ayarlanan ortam değişkenleriyle kimlik doğrulama mantığını ekleyin. Daha fazla bilgi için bkz . Microsoft.Azure.StackExchangeRedis Uzantısı.

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

Kullanıcı tarafından atanan yönetilen kimlik

Varsayılan ortam değişkeni adı Açıklama Örnek değer
AZURE_REDIS_HOST Redis uç noktası <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID Yönetilen kimlik istemci kimliği <client-ID>

Örnek kod

Aşağıdaki adımlar ve kod, Redis'e bağlanmak için kullanıcı tarafından atanan yönetilen kimliğin nasıl kullanılacağını gösterir.

  1. Bağımlılıkları yükleyin.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Hizmet Bağlayıcısı tarafından ayarlanan ortam değişkenleriyle kimlik doğrulama mantığını ekleyin. Daha fazla bilgi için bkz . Microsoft.Azure.StackExchangeRedis Uzantısı.

    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

Uyarı

Kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı öneririz. Burada açıklanan kimlik doğrulama akışı, uygulamada çok yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca yönetilen kimlikler gibi daha güvenli akışlar uygun olmadığında kullanmalısınız.

Varsayılan ortam değişkeni adı Açıklama Örnek değer
AZURE_REDIS_CONNECTIONSTRING StackExchange.Redisbağlantı dizesi <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

Örnek kod

Aşağıdaki adımlar ve kod, Redis için Azure Cache bağlanmak için bir bağlantı dizesi nasıl kullanacağınızı gösterir.

  1. Bağımlılıkları yükleyin.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. Hizmet Bağlayıcısı tarafından eklenen ortam değişkeninden bağlantı dizesi alın.

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

Hizmet sorumlusu

Varsayılan ortam değişkeni adı Açıklama Örnek değer
AZURE_REDIS_HOST Redis uç noktası <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID Hizmet sorumlusunun İstemci kimliği <client-ID>
AZURE_REDIS_CLIENTSECRET Hizmet sorumlusunun gizli dizisi <client-secret>
AZURE_REDIS_TENANTID Hizmet sorumlusunun Kiracı Kimliği <tenant-id>

Örnek kod

Aşağıdaki adımlar ve kod, Redis'e bağlanmak için hizmet sorumlusunun nasıl kullanılacağını gösterir.

  1. Bağımlılıkları yükleyin.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Hizmet Bağlayıcısı tarafından ayarlanan ortam değişkenleriyle kimlik doğrulama mantığını ekleyin. Daha fazla bilgi için bkz . Microsoft.Azure.StackExchangeRedis Uzantısı.

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