다음을 통해 공유


Azure Cache for Redis를 서비스 커넥터와 통합

서비스 커넥터를 사용하여 Azure Cache for Redis를 다른 클라우드 서비스에 연결할 수 있습니다. 이 문서에서는 지원되는 인증 방법 및 클라이언트를 간략하게 설명하고 샘플 코드를 제공합니다. 또한 서비스 연결을 만들 때 얻을 수 있는 기본 환경 변수 이름 및 값(또는 Spring Boot 구성)을 표시합니다.

지원되는 컴퓨팅 서비스

서비스 커넥터를 사용하여 다음 컴퓨팅 서비스를 Azure Cache for Redis에 연결할 수 있습니다.

  • Azure App Service
  • Azure Container Apps
  • Azure 기능
  • AKS(Azure Kubernetes Service)
  • Azure Spring Apps

지원되는 인증 및 클라이언트 유형

다음 표에서는 서비스 커넥터를 사용하여 컴퓨팅 서비스를 Azure Cache for Redis에 연결하는 데 지원되는 인증 방법과 클라이언트의 조합을 보여 줍니다. "예"는 조합이 지원됨을 의미합니다. "아니요"는 지원되지 않음을 의미합니다.

클라이언트 유형 시스템 할당 관리 ID 사용자 할당 관리 ID 비밀/연결 문자열 서비스 사용자
.NET
Go 아니요 아니요 아니요
Java
Java - Spring Boot 아니요 아니요 아니요
Node.JS
Python
없음

Go 및 Java - Spring Boot를 제외한 모든 클라이언트 유형은 서비스에서 참조하는 인증 방법을 사용하여 서비스 커넥터를 사용하여 Azure Cache for Redis에 연결할 수 있습니다. Go 및 Java에 대해 지원되는 유일한 인증 방법 - Spring Boot는 비밀/연결 문자열 또는 서비스 주체입니다.

기본 환경 변수 이름 또는 애플리케이션 속성과 샘플 코드

다음 환경 변수 이름 및 애플리케이션 속성을 사용하여 컴퓨팅 서비스를 Redis 서버에 연결합니다. 명명 규칙에 대한 자세한 내용은 Service Connector 내부 문서를 확인 하세요 .

시스템 할당 관리 ID

기본 환경 변수 이름 설명 샘플 값
AZURE_REDIS_HOST Redis 엔드포인트 <RedisName>.redis.cache.windows.net

샘플 코드

다음 단계와 코드에서는 시스템 할당 관리 ID를 사용하여 Redis에 연결하는 방법을 보여 줍니다.

  1. 종속성을 설치합니다.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Service Connector에서 설정한 환경 변수를 사용하여 인증 논리를 추가합니다. 자세한 내용은 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);
    

사용자 할당 관리 ID

기본 환경 변수 이름 설명 샘플 값
AZURE_REDIS_HOST Redis 엔드포인트 <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID 관리 ID 클라이언트 ID <client-ID>

샘플 코드

다음 단계 및 코드에서는 사용자 할당 관리 ID를 사용하여 Redis에 연결하는 방법을 보여 줍니다.

  1. 종속성을 설치합니다.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Service Connector에서 설정한 환경 변수를 사용하여 인증 논리를 추가합니다. 자세한 내용은 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);
    

Connection string

Warning

사용 가능한 가장 안전한 인증 흐름을 사용하는 것이 좋습니다. 여기에 설명된 인증 흐름은 애플리케이션에 대한 신뢰 수준이 매우 높고 다른 흐름에 없는 위험을 수반합니다. 관리 ID와 같은 보다 안전한 흐름이 실행 가능하지 않은 경우에만 이 흐름을 사용해야 합니다.

기본 환경 변수 이름 설명 예제 값
AZURE_REDIS_CONNECTIONSTRING StackExchange.Redis연결 문자열 <redis-server-name>.redis.cache.windows.net:6380,password=<redis-key>,ssl=True,defaultDatabase=0

샘플 코드

다음 단계 및 코드에서는 연결 문자열 사용하여 Azure Cache for Redis에 연결하는 방법을 보여 줍니다.

  1. 종속성을 설치합니다.

    dotnet add package StackExchange.Redis --version 2.6.122
    
  2. 서비스 커넥터에서 추가한 환경 변수에서 연결 문자열을 가져옵니다.

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

서비스 사용자

기본 환경 변수 이름 설명 샘플 값
AZURE_REDIS_HOST Redis 엔드포인트 <RedisName>.redis.cache.windows.net
AZURE_REDIS_CLIENTID 서비스 주체의 클라이언트 ID <client-ID>
AZURE_REDIS_CLIENTSECRET 서비스 주체의 클라이언트 암호 <client-secret>
AZURE_REDIS_TENANTID 서비스 주체의 테넌트 ID <tenant-id>

샘플 코드

다음 단계 및 코드에서는 서비스 주체를 사용하여 Redis에 연결하는 방법을 보여 줍니다.

  1. 종속성을 설치합니다.

    dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.2.0
    
  2. Service Connector에서 설정한 환경 변수를 사용하여 인증 논리를 추가합니다. 자세한 내용은 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);