다음을 통해 공유


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

이 문서에서는 서비스 커넥터를 사용하여 앱을 Azure Cache for Redis에 연결하는 데 사용할 수 있는 지원되는 인증 방법, 클라이언트 및 샘플 코드에 대해 설명합니다. 이 문서에서는 서비스 연결을 만들 때 가져오는 기본 환경 변수 이름, 값 및 구성도 찾을 수 있습니다.

지원되는 컴퓨팅 서비스

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

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

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

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

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

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

다음 환경 변수 이름과 애플리케이션 속성을 사용하여 컴퓨팅 서비스를 Redis 서버에 연결합니다. 명명 규칙에 대해 자세히 알아보려면 서비스 커넥터 내부 문서를 확인합니다.

시스템 할당 관리 ID

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

예제 코드

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

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

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

연결 문자열

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. 서비스 커넥터에서 설정한 환경 변수를 사용하여 인증 논리를 추가합니다. 자세한 내용은 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);