Bagikan melalui


Mengintegrasikan Azure Cache for Redis dengan Konektor Layanan

Anda dapat menyambungkan Azure Cache for Redis ke layanan cloud lain dengan menggunakan Konektor Layanan. Artikel ini menguraikan metode dan klien autentikasi yang didukung, dan menyediakan kode sampel. Ini juga mengungkapkan nama dan nilai variabel lingkungan default (atau konfigurasi Spring Boot) yang Anda dapatkan saat membuat koneksi layanan.

Layanan komputasi yang didukung

Anda dapat menggunakan Konektor Layanan untuk menyambungkan layanan komputasi berikut ke Azure Cache for Redis:

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

Jenis autentikasi dan klien yang didukung

Tabel berikut menunjukkan kombinasi metode autentikasi dan klien mana yang didukung untuk menyambungkan layanan komputasi Anda ke Azure Cache for Redis dengan menggunakan Konektor Layanan. "Ya" berarti bahwa kombinasi didukung. "Tidak" berarti tidak didukung.

Jenis klien Identitas terkelola yang ditetapkan sistem Identitas terkelola yang ditetapkan pengguna Rahasia /string koneksi Perwakilan layanan
.NET Ya Ya Ya Ya
Go Tidak No Ya Tidak
Java Ya Ya Ya Ya
Java - Spring Boot Tidak No Ya Tidak
Node.js Ya Ya Ya Ya
Python Ya Ya Ya Ya
Tidak Ya Ya Ya Ya

Semua jenis klien, kecuali Go dan Java - Spring Boot, dapat menggunakan salah satu metode autentikasi yang dirujuk dalam tabel untuk menyambungkan ke Azure Cache for Redis dengan menggunakan Konektor Layanan. Satu-satunya metode autentikasi yang didukung untuk Go dan Java - Spring Boot adalah rahasia / string koneksi atau perwakilan layanan.

Nama variabel lingkungan default atau properti aplikasi dan kode sampel

Gunakan nama variabel lingkungan dan properti aplikasi berikut untuk menyambungkan layanan komputasi ke server Redis Anda. Untuk mempelajari selengkapnya tentang konvensi penamaan, periksa artikel internal Konektor Layanan.

Identitas terkelola yang ditetapkan sistem

Nama Variabel Lingkungan Deskripsi Sampel nilai
AZURE_REDIS_HOST Titik akhir Redis <RedisName>.redis.cache.windows.net

Kode Sampel

Langkah-langkah dan kode berikut menunjukkan kepada Anda cara menggunakan identitas terkelola yang ditetapkan sistem untuk menyambungkan ke Redis.

  1. Instal dependensi.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Tambahkan logika autentikasi dengan variabel lingkungan yang ditetapkan oleh Konektor Layanan. Untuk informasi selengkapnya, lihat Ekstensi 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);
    

Identitas terkelola yang ditetapkan pengguna

Nama Variabel Lingkungan Deskripsi Sampel nilai
AZURE_REDIS_HOST Titik akhir Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID ID klien identitas terkelola <client-ID>

Kode Sampel

Langkah-langkah dan kode berikut menunjukkan kepada Anda cara menggunakan identitas terkelola yang ditetapkan pengguna untuk menyambungkan ke Redis.

  1. Instal dependensi.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Tambahkan logika autentikasi dengan variabel lingkungan yang ditetapkan oleh Konektor Layanan. Untuk informasi selengkapnya, lihat Ekstensi 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);
    

String koneksi

Peringatan

Kami menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Alur autentikasi yang dijelaskan di sini memerlukan tingkat kepercayaan yang sangat tinggi dalam aplikasi, dan membawa risiko yang tidak ada di alur lain. Anda harus menggunakan alur ini hanya ketika alur yang lebih aman, seperti identitas terkelola, tidak layak.

Nama Variabel Lingkungan Deskripsi Contoh nilai
AZURE_REDIS_CONNECTIONSTRING StackExchange.Redisstring koneksi <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

Kode Sampel

Langkah-langkah dan kode berikut menunjukkan kepada Anda cara menggunakan string koneksi untuk menyambungkan ke Azure Cache for Redis.

  1. Instal dependensi.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. Dapatkan string koneksi dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.

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

Perwakilan layanan

Nama Variabel Lingkungan Deskripsi Sampel nilai
AZURE_REDIS_HOST Titik akhir Redis <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID ID klien perwakilan layanan <client-ID>
AZURE_REDIS_CLIENTSECRET Rahasia perwakilan layanan <client-secret>
AZURE_REDIS_TENANTID ID penyewa perwakilan layanan <tenant-id>

Kode Sampel

Langkah-langkah dan kode berikut menunjukkan kepada Anda cara menggunakan perwakilan layanan untuk menyambungkan ke Redis.

  1. Instal dependensi.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Tambahkan logika autentikasi dengan variabel lingkungan yang ditetapkan oleh Konektor Layanan. Untuk informasi selengkapnya, lihat Ekstensi 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);