다음을 통해 공유


Azure 서비스, gRPC, OpenAPI 등에 연결

개발자는 점점 더 많은 서비스를 사용하여 앱을 빌드하고 있지만 서비스 기술은 빠르게 진화하고 있습니다.

Visual Studio의 연결된 서비스를 사용하면 최신 서비스 사용 경험을 누릴 수 있으며, 각 서비스가 사용 환경을 맞춤 설정할 수 있도록 하여 빠르게 시작할 수 있도록 관련 질문을 제시합니다.

연결된 서비스에는 애플리케이션을 다음 항목에 연결하는 데 도움이 되는 Visual Studio의 도구 컬렉션이 포함되어 있습니다.

  • Azure 서비스
  • OpenAPI 엔드포인트
  • gRPC(원격 프로시저 호출) 엔드포인트
  • WCF(Windows Communication Foundation) 엔드포인트
  • 데이터베이스 및 데이터 공급자

솔루션 탐색기에서 연결된 서비스 노드를 마우스 오른쪽 버튼으로 클릭한 다음 연결된 서비스 관리를 선택합니다.

프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 > 연결된 서비스추가를 선택하여 시작합니다. 솔루션 탐색기연결된 서비스 노드를 마우스 오른쪽 단추로 클릭하고 추가할 특정 서비스를 선택할 수도 있습니다.

지원되는 프로젝트 형식은 서비스 유형에 따라 다릅니다. 나열된 선택 영역에 프로젝트 형식에 적용되는 옵션이 표시됩니다.

많은 Visual Studio 구독에는 Azure 개별 개발/테스트 크레딧포함됩니다. Visual Studio 구독자인 경우 이러한 크레딧을 사용하여 다양한 Azure 서비스를 비용 없이 사용해 볼 수 있습니다. 구독자가 아니고 Azure 구독이 없는 경우 무료 계정 만들있습니다.

Azure 서비스에 앱 연결

연결된 서비스를 사용하여 애플리케이션을 Azure 서비스에 대한 라이브 Azure 서비스 에뮬레이터 및 기타 로컬 대안에 연결합니다. Visual Studio는 현재 다음을 지원합니다.

이름 묘사
Azure 앱 구성 Azure에서 중앙에서 관리되는 키-값 설정 및 기능 플래그에 액세스합니다.
Azure App Insights 라이브 웹앱에 대한 확장 가능한 애플리케이션 성능 관리 및 모니터링을 제공합니다.
Azure App Service 라이브 웹앱의 확장 가능한 전체 서비스 호스팅을 제공합니다.
Azure Functions 웹 API 등에 대해 확장 가능한 주문형 컴퓨팅 서비스를 제공합니다.
Azure Storage Blob, 테이블, 큐, 디스크를 지원하는 확장 가능한 클라우드 스토리지 시스템.
Azure SignalR Service HTTP를 통한 실시간 웹 기능
Azure Key Vault Azure 애플리케이션에서 사용하는 암호화 키 및 기타 비밀에 대한 클라우드 스토리지를 보호합니다.
Azure SQL Database 클라우드에 호스팅된 SQL 데이터베이스.
Azure Cache for Redis Redis 소프트웨어를 기반으로 하는 메모리 내 데이터 저장소입니다.
Azure Cosmos DB 최신 앱 개발을 위한 완전 관리형 NoSQL 데이터베이스입니다.
Microsoft 아이덴티티 플랫폼 Microsoft ID 및 소셜 계정으로 인증

메모

게시를 사용하여 Azure VM, Azure App Service, Azure Functions 및 Azure Container Registry와 같은 Azure 호스팅 서비스에 애플리케이션을 배포할 수 있습니다.

데이터베이스 및 데이터 공급자

Visual Studio는 온-프레미스 데이터베이스, 로컬로 에뮬레이트된 버전의 데이터 공급자 및 Azure 데이터베이스 서비스에 연결하는 옵션을 제공합니다.

이름 묘사
Azure Cosmos DB 에뮬레이터 컨테이너 로컬 컨테이너에서 실행되는 Azure Cosmos DB 에뮬레이터입니다.
컨테이너 위의 MongoDB MongoDB 문서 데이터베이스는 높은 안정성과 간편한 확장성을 제공합니다. 이 옵션을 사용하면 로컬 컨테이너에서 사용할 수 있습니다.
컨테이너 위의 PostgreSQL PostgreSQL은 안정성 및 데이터 무결성을 제공하는 개체 관계형 데이터베이스 시스템입니다. 이 옵션을 사용하면 로컬 컨테이너에서 사용할 수 있습니다.
SQLite SQLite는 구성 없이 자체 포함된 트랜잭션 SQL Server 데이터베이스 엔진을 제공하는 In-process 라이브러리입니다.
SQL Server 데이터베이스 온-프레미스 SQL Server 데이터베이스.

Azure 에뮬레이터 및 로컬 대안 지원

Visual Studio를 사용하면 로컬로 에뮬레이트된 서비스에서 클라우드에서 실행되는 서비스로의 전환을 완화하여 Azure 애플리케이션을 로컬로 쉽게 개발할 수 있습니다. 연결된 서비스를 사용하여 로컬 에뮬레이터에 애플리케이션을 연결할 수 있으며, 그 중 일부는 로컬 컨테이너에서 실행되고 다른 로컬 대체 항목은 Azure 서비스에 연결할 수 있습니다. Visual Studio는 현재 다음을 지원합니다.

Visual Studio는 통신을 용이하게 하는 데 필요한 모든 클라이언트 또는 서버 코드를 생성합니다.

이름 설명
컨테이너 의 Azure Cosmos DB 에뮬레이터 로컬 컨테이너에서 실행되는 Azure Cosmos DB 에뮬레이터입니다.
Azure Storage 에뮬레이터 Azurite는 로컬 컴퓨터에서 실행되는 Azure Storage 에뮬레이터입니다.
Application Insights SDK Application Insights 서비스의 로컬 모드입니다.
RabbitMQ 컨테이너 RabbitMQ는 오픈 소스 멀티프로토콜 메시지 브로커입니다. 이 옵션을 사용하면 로컬 컨테이너에서 사용할 수 있습니다.
Azure Cache for Redis 컨테이너에서 로컬 컨테이너에서 호스트되는 Azure Cache for Redis입니다.
Secrets.json Key Vault에 대한 로컬 대안입니다.
SQL Server Express LocalDB Azure SQL Database에 대한 로컬 대안입니다.

gRPC, OpenAPI 및 WCF 엔드포인트에 앱 연결

연결된 서비스를 사용하여 애플리케이션을 다음 서비스에 연결합니다.

이름 ASP.NET 링크 묘사
OpenAPI 엔드포인트 OpenAPI 지원 은 ASP.NET Core API 앱에서 가능합니다 컴퓨터에서 읽을 수 있고 사람이 읽을 수 있는 형식으로 서비스의 기능을 설명하는 표준 형식입니다.
gRPC 엔드포인트 .NET gRPC 서비스 소개 오픈 소스 실시간 프로시저 호출 서비스.
WCF 엔드포인트 해당 없음 (N/A) 분산 서비스 네트워크를 사용하여 프로그래밍을 지원하는 .NET Framework 솔루션입니다.

컨테이너

연결된 서비스는 컨테이너에서 로컬로 Azure 서비스를 에뮬레이트하는 애플리케이션 종속성을 실행하는 데 도움이 될 수 있습니다. 예를 들어 로컬로 컨테이너에서 Azurite라는 Azure Storage 에뮬레이터를 실행할 수 있습니다. 다음 섹션에서는 컨테이너에서 이러한 모의 서비스를 사용할 때 개발 모드에서 Azure에서 실행되는 실제 서비스로 앱을 전환하기 위해 Visual Studio에서 제공하는 지원에 대해 설명합니다.

로컬 및 연결된 구성

개발 중에는 일반적으로 로컬 에뮬레이터, 로컬 데이터베이스 또는 로컬 컨테이너에서 실행되는 모의 서비스를 사용합니다. Visual Studio에서 게시 프로세스를 사용하여 Azure, Docker Hub 또는 지원되는 다른 원격 환경 등 클라우드에 배포하는 경우 Visual Studio는 실제 서비스 및 데이터베이스에 연결하는 전환을 안내할 수 있습니다. 솔루션 탐색기 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 게시선택하면 클라우드에 앱을 배포하는 과정을 안내하지만, 그 후에는 이전에 로컬 사용을 위해 구성한 서비스 종속성이 노란색 주의 아이콘과 구성 링크와 함께 연결된 서비스 UI에 표시됩니다.

연결된 서비스 탭의 구성 옵션을 보여 주는 스크린샷.

이러한 링크를 클릭하면 Visual Studio에서 클라우드 앱이 로컬 서비스 대신 사용할 클라우드에서 실행되는 "실제" 서비스에 대한 연결 정보를 요청하는 몇 가지 화면이 표시됩니다. 예를 들어 처음에 SQL LocalDB의 로컬로 실행 중인 인스턴스로 실행되도록 앱을 구성한 경우 연결 문자열 이름과 해당 LocalDB 데이터베이스를 참조하는 초기 값을 제공했을 것입니다. 앱을 클라우드 환경에 처음 배포한 후에는 구성 링크를 사용하여 클라우드에서 사용할 연결 문자열을 지정할 수 있습니다. Azure 배포 시나리오의 경우 Visual Studio는 Azure Key Vault 사용하여 연결 문자열 및 기타 비밀을 안전하게 저장하는 옵션도 제공합니다.

SQL LocalDB 서비스를 실제 데이터베이스 연결로 바꾸기 위해 제공되는 옵션을 보여 주는 스크린샷

작동 방식

Visual Studio는 serviceDependencies.jsonserviceDependencies.local.json속성 아래에 솔루션 탐색기에 표시되는 두 개의 새 파일을 만듭니다. 두 파일 모두 비밀이 포함되지 않으므로 안전하게 체크 인할 수 있습니다.

Visual Studio는 기본적으로 솔루션 탐색기에 표시되지 않는 serviceDependencies.local.json.user 파일을 만듭니다. 이 파일에는 비밀로 간주될 수 있는 정보(예: Azure의 리소스 ID)가 포함되어 있으며 체크 인하지 않는 것이 좋습니다.