Visual Studio 연결된 서비스를 사용하여 앱에 Azure Cosmos DB 추가

Visual Studio를 사용하면 연결된 서비스 기능을 사용하여 Azure Cosmos DB에 다음을 연결할 수 있습니다.

  • .NET Framework 콘솔 앱
  • ASP.NET MVC(Model-View-Controller)(.NET Framework)
  • ASP.NET Core
  • .NET Core(콘솔 앱, WPF, Windows Forms, 클래스 라이브러리 포함)
  • .NET Core 작업자 역할
  • Azure Functions
  • 유니버설 Windows 플랫폼 앱
  • Xamarin
  • Cordova

연결된 서비스 기능은 필요한 모든 참조와 연결 코드를 프로젝트에 추가하고 구성 파일을 적절하게 수정합니다.

참고

이 토픽은 Windows용 Visual Studio에만 적용됩니다. Mac용 Visual Studio는 Mac용 Visual Studio의 연결된 서비스를 참조하세요.

사전 요구 사항

연결된 서비스를 사용하여 Azure Cosmos DB에 연결

  1. Visual Studio에서 새 프로젝트를 엽니다.

  2. 솔루션 탐색기에서 연결된 서비스 노드를 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴에서 연결된 서비스 추가를 선택합니다.

  3. 연결된 서비스 탭에서 서비스 종속성의 + 아이콘을 선택합니다.

    Screenshot showing how to add a service dependency.

  4. 종속성 추가 페이지에서 Azure Cosmos DB를 선택합니다.

    Screenshot showing

    아직 로그인하지 않은 경우 Azure 계정에 로그인합니다. Azure 계정이 없으면 평가판에 등록할 수 있습니다.

  5. Azure Cosmos DB 화면에서 기존 Azure Cosmos DB를 선택하고 다음을 선택합니다.

    데이터베이스를 만들어야 하는 경우 다음 단계로 이동합니다. 그러지 않은 경우 7단계로 건너뜁니다.

    Screenshot showing how to add an existing Azure Cosmos DB to project.

  6. Azure Cosmos DB를 만들려면 다음을 수행합니다.

    1. 화면 맨 아래에서 새 Azure Cosmos DB 만들기를 선택합니다.

    2. Azure Cosmos DB: 새로 만들기 화면에 입력하고 만들기를 선택합니다.

      Screenshot showing

    3. Azure Cosmos DB 구성 대화 상자가 표시되면 새 데이터베이스가 목록에 표시됩니다. 목록에서 새 데이터베이스를 선택하고 다음을 선택합니다.

  7. 연결 문자열 이름을 입력하고 연결 문자열을 로컬 비밀 파일에 저장할지, 아니면 Azure Key Vault에 저장할지 선택합니다.

    Screenshot showing

  8. 변경 내용 요약 화면에는 프로세스를 완료할 경우 프로젝트에 적용되는 모든 수정 사항이 표시됩니다. 변경 내용이 맞으면 마침을 선택합니다.

    Screenshot showing

  9. 연결이 연결된 서비스 탭의 서비스 종속성 섹션에 표시됩니다.

    Screenshot showing

참고 항목

.NET Framework 프로젝트의 경우 연결된 서비스 UI가 약간 다릅니다. 차이점을 확인하려면 이 페이지의 Visual Studio 2019 버전과 비교 합니다.

  1. Visual Studio에서 새 프로젝트를 엽니다.

  2. 솔루션 탐색기에서 연결된 서비스 노드를 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 추가를 선택하여 사용 가능한 서비스 메뉴를 엽니다.

    Screenshot showing Connected Services context menu options.

  3. Azure Cosmos DB를 선택합니다. 디펜던시 연결 페이지가 나타납니다. 로컬 에뮬레이터인 컨테이너의 Azure Cosmos DB 에뮬레이터(로컬)와 라이브 Azure Cosmos DB 서비스에 연결할 수 있는 두 가지 옵션이 표시됩니다. 로컬 에뮬레이터로 시작하면 비용을 절감하고 초기 개발을 간소화할 수 있습니다. 나중에 이 단계를 반복하고 다른 옵션을 선택하여 라이브 서비스로 마이그레이션할 수 있습니다.

    Screenshot showing Azure Cosmos DB choices.

    Azure Cosmos DB 에뮬레이터를 선택한 경우 다음을 클릭하면 변경 사항 요약 화면이 표시되어 프로젝트가 어떻게 수정되고 있는지 확인할 수 있습니다. 프로젝트에 NuGet 패키지 참조가 추가되고 로컬 에뮬레이터에 대한 연결 코드가 프로젝트에 추가됩니다. 마지막 화면에서 끝내기를 클릭하면 에뮬레이터용 컨테이너가 생성되고 출력 창에서 이미지 다운로드 상태를 확인할 수 있습니다.

    나중에 이 단계를 반복하고 다른 옵션을 선택하여 라이브 서비스로 마이그레이션할 수 있습니다.Azure 서비스에 연결하려면 다음 단계를 계속 진행하거나 아직 로그인하지 않은 경우 계속하기 전에 Azure 계정에 로그인하세요. Azure 계정이 없으면 평가판에 등록할 수 있습니다.

  4. Azure Cosmos DB 화면에서 기존 Azure Cosmos DB를 선택하고 다음을 선택합니다.

    데이터베이스를 만들어야 하는 경우 다음 단계로 이동합니다. 그러지 않은 경우 7단계로 건너뜁니다.

    Screenshot showing

  5. Azure Cosmos DB를 만들려면 다음을 수행합니다.

    1. 화면 맨 아래에서 새 Azure Cosmos DB 만들기를 선택합니다.

    2. Azure Cosmos DB: 새로 만들기 화면에 입력하고 만들기를 선택합니다.

      Screenshot showing

    3. Azure Cosmos DB 구성 대화 상자가 표시되면 새 데이터베이스가 목록에 표시됩니다. 목록에서 새 데이터베이스를 선택하고 다음을 선택합니다.

  6. 연결 문자열 이름을 입력하고 연결 문자열을 로컬 비밀 파일에 저장할지, 아니면 Azure Key Vault에 저장할지 선택합니다.

    Screenshot showing

    연결 문자열은 비밀로 추가되며 앱 구성에서 사용할 수 있습니다. ConfigurationWebApplicationBuildASP.NET Core 앱에서는 개체의 속성을 사용하여 이 연결 문자열에 액세스할 수 있습니다.

  7. 변경 내용 요약 화면에는 프로세스를 완료할 경우 프로젝트에 적용되는 모든 수정 사항이 표시됩니다. 변경 내용이 맞으면 마침을 선택합니다.

    Screenshot showing

  8. 솔루션 탐색기에서 연결된 서비스 노드를 두 번 클릭하여 연결된 서비스 탭을 엽니다. 연결은 서비스 종속성 섹션 아래에 나타납니다:

    Screenshot showing

    추가한 종속성 옆의 점 3개를 클릭하면 연결과 같은 다양한 옵션이 표시되어 마법사를 다시 열고 연결을 변경할 수 있습니다. 창 오른쪽 상단에 있는 점 3개를 클릭하면 로컬 종속성을 시작하고 설정을 변경하는 등의 옵션을 볼 수도 있습니다.

  9. 기본적으로 컨테이너의 메모리 제한은 2G로 설정되지만, 일반적으로 Azure Cosmos DB를 실행하려면 더 많은 메모리가 필요합니다. 이 문제를 해결하려면 솔루션 폴더의 .vs/sd/<GUID>/local 폴더로 이동합니다. Windows 탐색기에서 .vs 폴더를 보려면 숨겨진 파일을 사용하도록 설정해야 할 수 있습니다. cosmosdb1.docker-compose.yml 파일을 찾아서 엽니다. 4G 이상의 메모리 제한을 설정합니다.

    mem_limit = 4G
    

    새 설정으로 컨테이너를 다시 시작하려면 연결 서비스 탭의 서비스 종속성 섹션에서 세 개의 점을 클릭하고 로컬 종속성 시작을 선택합니다.

참고 항목

Azure Cosmos DB에 대한 로컬 에뮬레이터는 Azure Cosmos DB에 대한 임시 라이선스를 사용하는 기본 이미지를 참조할 수 있습니다. 컨테이너가 시작되지 않을 경우, Azure Cosmos DB 컨테이너에 대한 컨테이너* 창의 로그 탭을 확인합니다. PAL 만료 문제가 언급될 경우, 로컬 컨테이너에 대한 최신 기본 이미지를 가져와야 합니다. 콘솔 프롬프트에서 다음 명령 실행: docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest. 라이선스는 주기적으로 업데이트되며, 만료되면 최신 컨테이너를 새로 고쳐 문제를 해결해야 합니다. Azure Cosmos DB 에뮬레이터 GitHub 리포지토리에서 Azure Cosmos DB 에뮬레이터에 대한 문제를 보고할 수 있습니다.

다음 단계

개발 중인 앱의 비밀을 안전하게 저장하기를 따라 비밀을 안전하게 저장하는 방법을 알아보세요. 특히, 시크릿 저장소에서 연결 문자열을 읽으려면 설정 API를 통해 시크릿 읽기와 같이 코드를 추가하면 됩니다. builderWebApplicationBuild코드는 다음과 같이 보일 수 있으며, 여기서 은 ASP.NET Core 프로젝트 템플릿의 Program.cs에 나타나는 의 인스턴스입니다:

// New instance of CosmosClient class using a connection string
using CosmosClient client = new(
    connectionString: builder.Configuration["CosmosDBConnectionString"]
);

CosmosClient은 다양한 방법을 통해 Azure Cosmos DB 기능에 액세스할 수 있도록 합니다. CosmosClient의 인스턴스가 있으면 이 가이드에 따라 NoSQL 데이터베이스를 만들 수 있습니다: .NET을 사용하여 NoSQL용 Azure Cosmos DB에서 데이터베이스 만들기