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 App Configuration 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 ID 플랫폼 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 데이터베이스 엔진을 제공하는 처리 중 라이브러리입니다.
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 앱 개발 컴퓨터와 사람이 읽을 수 있는 형식으로 서비스 기능을 설명하기 위한 표준 형식입니다.
gRPC 엔드포인트 .NET의 gRPC 서비스 소개 오픈 소스 실시간 프로시저 호출 서비스입니다.
WCF 엔드포인트 해당 없음 서비스 분산 네트워크를 사용하여 프로그래밍을 지원하는 .NET Framework 솔루션입니다.

컨테이너

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

로컬 및 연결된 구성

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

Screenshot showing the Configure option in the Connected Services tab.

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

Screenshot showing the options presented to replace the SQL LocalDB service with a real database connection.

작동 방식

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

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