다음을 통해 공유


서비스 커넥터와 Azure Cosmos DB for NoSQL 통합

이 페이지에는 지원되는 인증 방법 및 클라이언트가 표시되며, 서비스 커넥터를 사용하여 Azure Cosmos DB for NoSQL을 다른 클라우드 서비스에 연결하는 데 사용할 수 있는 샘플 코드가 표시됩니다. 서비스 커넥터를 사용하지 않고 다른 프로그래밍 언어로 Azure Cosmos DB for NoSQL에 계속 연결할 수 있습니다. 이 페이지에서는 서비스 연결을 만들 때 가져오는 기본 환경 변수 이름과 값(또는 Spring Boot 구성)도 보여 줍니다.

지원되는 컴퓨팅 서비스

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

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

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

아래 표에서는 서비스 커넥터를 사용하여 컴퓨팅 서비스를 Azure Cosmos DB for NoSQL에 연결하는 데 지원되는 인증 방법과 클라이언트 유형의 조합을 보여 줍니다. "예"는 조합이 지원됨을 나타내고 "아니오"는 지원되지 않음을 나타냅니다.

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

이 표는 표에 있는 클라이언트 유형과 인증 방법의 모든 조합이 지원됨을 나타냅니다. 모든 클라이언트 유형은 어느 인증 방법으로나 서비스 커넥터를 사용하여 Azure Cosmos DB for NoSQL에 연결할 수 있습니다.

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

아래 연결 세부 정보를 사용하여 컴퓨팅 서비스를 Azure Cosmos DB for NoSQL에 연결합니다. 아래의 각 예제에서 자리 표시자 텍스트 <database-server>, <database-name>, <account-key>, <resource-group-name>, <subscription-ID>, <client-ID>, <SQL-server>, <client-secret>, <tenant-id><access-key>를 고유의 정보로 바꿉니다. 명명 규칙에 대한 자세한 내용은 서비스 커넥터 내부 문서를 확인하세요.

시스템 할당 관리 ID

SpringBoot 클라이언트 유형

인증 유형으로 시스템이 할당한 관리 ID를 사용하는 것은 Spring Cloud Azure 버전 4.0 이상에서만 가능합니다.

기본 환경 변수 이름 설명 예제 값
spring.cloud.azure.cosmos.credential.managed-identity-enabled 관리 ID 사용 여부 true
spring.cloud.azure.cosmos.database 데이터베이스 https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint 리소스 엔드포인트 https://<database-server>.documents.azure.com:443/

기타 클라이언트 유형

기본 환경 변수 이름 설명 예제 값
AZURE_COSMOS_LISTCONNECTIONSTRINGURL 연결 문자열을 가져올 URL https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<database-server>/listConnectionStrings?api-version=2021-04-15
AZURE_COSMOS_SCOPE 관리 ID 범위 https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT 리소스 엔드포인트 https://<database-server>.documents.azure.com:443/

샘플 코드

시스템에서 할당한 ID를 사용하여 Azure Cosmos DB for NoSQL에 연결하려면 아래 단계 및 코드를 참조하세요.

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

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Azure.Identity NuGet 패키지를 사용하여 인증하고 서비스 커넥터에서 추가한 환경 변수에서 엔드포인트 URL을 가져옵니다. 아래 코드를 사용하는 경우 사용하려는 인증 유형에 대한 코드 조각 부분의 주석 처리를 제거합니다.

    using Microsoft.Azure.Cosmos;
    using Azure.Core;
    using Azure.Identity;
    using System; 
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // For system-assigned identity.
    // TokenCredential credential = new DefaultAzureCredential();
    
    // For user-assigned identity.
    // TokenCredential credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
    //     }
    // );
    
    // For service principal.
    // TokenCredential credential = new ClientSecretCredential(
    //     tenantId: Environment.GetEnvironmentVariable("AZURE_COSMOS_TENANTID")!,
    //     clientId: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID")!,
    //     clientSecret: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTSECRET")!,
    //     options: new TokenCredentialOptions()
    // );
    
    // Create a new instance of CosmosClient using the credential above
    using CosmosClient client = new(
        accountEndpoint: Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT")!,
        tokenCredential: credential
    );
    

사용자 할당 관리 ID

SpringBoot 클라이언트 유형

인증 유형으로 사용자가 할당한 관리 ID를 사용하는 것은 Spring Cloud Azure 버전 4.0 이상에서만 가능합니다.

기본 환경 변수 이름 설명 예제 값
spring.cloud.azure.cosmos.credential.managed-identity-enabled 관리 ID 사용 여부 true
spring.cloud.azure.cosmos.database 데이터베이스 https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint 리소스 엔드포인트 https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.credential.client-id 클라이언트 ID <client-ID>

기타 클라이언트 유형

기본 환경 변수 이름 설명 예제 값
AZURE_COSMOS_LISTCONNECTIONSTRINGURL 연결 문자열을 가져올 URL https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<database-server>/listConnectionStrings?api-version=2021-04-15
AZURE_COSMOS_SCOPE 관리 ID 범위 https://management.azure.com/.default
AZURE_COSMOS_CLIENTID 클라이언트 ID <client-ID>
AZURE_COSMOS_RESOURCEENDPOINT 리소스 엔드포인트 https://<database-server>.documents.azure.com:443/

샘플 코드

사용자가 할당한 ID를 사용하여 Azure Cosmos DB for NoSQL에 연결하려면 아래 단계 및 코드를 참조하세요.

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

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Azure.Identity NuGet 패키지를 사용하여 인증하고 서비스 커넥터에서 추가한 환경 변수에서 엔드포인트 URL을 가져옵니다. 아래 코드를 사용하는 경우 사용하려는 인증 유형에 대한 코드 조각 부분의 주석 처리를 제거합니다.

    using Microsoft.Azure.Cosmos;
    using Azure.Core;
    using Azure.Identity;
    using System; 
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // For system-assigned identity.
    // TokenCredential credential = new DefaultAzureCredential();
    
    // For user-assigned identity.
    // TokenCredential credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
    //     }
    // );
    
    // For service principal.
    // TokenCredential credential = new ClientSecretCredential(
    //     tenantId: Environment.GetEnvironmentVariable("AZURE_COSMOS_TENANTID")!,
    //     clientId: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID")!,
    //     clientSecret: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTSECRET")!,
    //     options: new TokenCredentialOptions()
    // );
    
    // Create a new instance of CosmosClient using the credential above
    using CosmosClient client = new(
        accountEndpoint: Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT")!,
        tokenCredential: credential
    );
    

Connection string

Warning

사용 가능한 가장 안전한 인증 흐름을 사용하는 것이 권장됩니다. 이 절차에서 설명된 인증 흐름은 다른 흐름에는 없는 위험을 전달하며, 애플리케이션에서 매우 높은 신뢰 수준을 요구합니다. 이 흐름은 관리 ID와 같은 보다 안전한 다른 흐름을 실행할 수 없는 경우에만 사용되어야 합니다.

SpringBoot 클라이언트 유형

기본 환경 변수 이름 설명 예제 값
azure.cosmos.key 버전 4.0 미만의 Spring Cloud Azure용 데이터베이스에 대한 액세스 키 <access-key>
azure.cosmos.database 버전 4.0 미만의 Spring Cloud Azure용 데이터베이스 <database-name>
azure.cosmos.uri 버전 4.0 미만의 Spring Cloud Azure용 데이터베이스 URI https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.key 버전 4.0 이상의 Spring Cloud Azure용 데이터베이스에 대한 액세스 키 <access-key>
spring.cloud.azure.cosmos.database 버전 4.0 이상의 Spring Cloud Azure용 데이터베이스 <database-name>
spring.cloud.azure.cosmos.endpoint 버전 4.0 이상의 Spring Cloud Azure용 데이터베이스 URI https://<database-server>.documents.azure.com:443/

기타 클라이언트 유형

기본 환경 변수 이름 설명 예제 값
AZURE_COSMOS_CONNECTIONSTRING Azure Cosmos DB for NoSQL 연결 문자열 AccountEndpoint=https://<database-server>.documents.azure.com:443/;AccountKey=<account-key>

샘플 코드

연결 문자열을 사용하여 Azure Cosmos DB for NoSQL에 연결하려면 아래 단계 및 코드를 참조하세요.

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

    dotnet add package Microsoft.Azure.Cosmos
    
  2. 서비스 커넥터에서 추가한 환경 변수에서 연결 문자열을 가져옵니다.

    using Microsoft.Azure.Cosmos;
    using System; 
    
    // Create a new instance of CosmosClient using a connection string
    using CosmosClient client = new(
        connectionString: Environment.GetEnvironmentVariable("AZURE_COSMOS_CONNECTIONSTRING")!
    );
    

서비스 사용자

SpringBoot 클라이언트 유형

기본 환경 변수 이름 설명 예제 값
spring.cloud.azure.cosmos.credential.client-id 클라이언트 ID <client-ID>
spring.cloud.azure.cosmos.credential.client-secret 클라이언트 암호 <client-secret>
spring.cloud.azure.cosmos.profile.tenant-id 테넌트 ID <tenant-ID>
spring.cloud.azure.cosmos.database 데이터베이스 <database-name>
spring.cloud.azure.cosmos.endpoint 리소스 엔드포인트 https://<database-server>.documents.azure.com:443/

기타 클라이언트 유형

기본 환경 변수 이름 설명 예제 값
AZURE_COSMOS_LISTCONNECTIONSTRINGURL 연결 문자열을 가져올 URL https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<database-server>/listConnectionStrings?api-version=2021-04-15
AZURE_COSMOS_SCOPE 관리 ID 범위 https://management.azure.com/.default
AZURE_COSMOS_CLIENTID 클라이언트 암호 ID <client-ID>
AZURE_COSMOS_CLIENTSECRET 클라이언트 암호 <client-secret>
AZURE_COSMOS_TENANTID 테넌트 ID <tenant-ID>
AZURE_COSMOS_RESOURCEENDPOINT 리소스 엔드포인트 https://<database-server>.documents.azure.com:443/

샘플 코드

서비스 주체를 사용하여 Azure Cosmos DB for NoSQL에 연결하려면 아래 단계 및 코드를 참조하세요.

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

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Azure.Identity NuGet 패키지를 사용하여 인증하고 서비스 커넥터에서 추가한 환경 변수에서 엔드포인트 URL을 가져옵니다. 아래 코드를 사용하는 경우 사용하려는 인증 유형에 대한 코드 조각 부분의 주석 처리를 제거합니다.

    using Microsoft.Azure.Cosmos;
    using Azure.Core;
    using Azure.Identity;
    using System; 
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // For system-assigned identity.
    // TokenCredential credential = new DefaultAzureCredential();
    
    // For user-assigned identity.
    // TokenCredential credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
    //     }
    // );
    
    // For service principal.
    // TokenCredential credential = new ClientSecretCredential(
    //     tenantId: Environment.GetEnvironmentVariable("AZURE_COSMOS_TENANTID")!,
    //     clientId: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID")!,
    //     clientSecret: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTSECRET")!,
    //     options: new TokenCredentialOptions()
    // );
    
    // Create a new instance of CosmosClient using the credential above
    using CosmosClient client = new(
        accountEndpoint: Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT")!,
        tokenCredential: credential
    );
    

다음 단계

서비스 커넥터에 대해 자세히 알아보려면 아래 나열된 자습서를 따르세요.