다음을 통해 공유


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

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

지원되는 컴퓨팅 서비스

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

  • Azure App Service
  • Azure 기능
  • Azure Container Apps
  • Azure Spring Apps

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

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

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

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

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

아래 연결 세부 정보를 사용하여 컴퓨팅 서비스를 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를 사용하여 NoSQL용 Azure Cosmos DB에 연결하려면 아래 단계 및 코드를 참조하세요.

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

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

    using Microsoft.Azure.Cosmos;
    using Azure.Core;
    using Azure.Identity;
    using System; 
    
    // Uncomment the following lines according to the authentication type.
    // 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를 사용하여 NoSQL용 Azure Cosmos DB에 연결하려면 아래 단계 및 코드를 참조하세요.

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

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

    using Microsoft.Azure.Cosmos;
    using Azure.Core;
    using Azure.Identity;
    using System; 
    
    // Uncomment the following lines according to the authentication type.
    // 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

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>

샘플 코드

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

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

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

    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/

샘플 코드

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

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

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

    using Microsoft.Azure.Cosmos;
    using Azure.Core;
    using Azure.Identity;
    using System; 
    
    // Uncomment the following lines according to the authentication type.
    // 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
    );
    

다음 단계

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