다음을 통해 공유


로컬에 원격 모니터링 솔루션 가속기 배포 - Visual Studio Code

이 문서에서는 테스트 및 개발을 위해 원격 모니터링 솔루션 가속기를 로컬 컴퓨터에 배포하는 방법을 보여줍니다. Visual Studio Code에서 마이크로 서비스를 실행하는 방법에 대해 알아봅니다. 로컬 마이크로 서비스 배포는 IoT Hub, Cosmos DB, Azure Streaming Analytics 및 Azure Time Series Insights 클라우드 서비스를 사용합니다.

필수 구성 요소

원격 모니터링 솔루션 가속기에 사용되는 Azure 서비스를 배포하려면 활성 Azure 구독이 필요합니다.

계정이 없는 경우 몇 분 만에 무료 평가판 계정을 만들 수 있습니다. 자세한 내용은 Azure 평가판을 참조하세요.

머신 설치

로컬 배포를 완료하기 위해 로컬 개발 컴퓨터에 설치되어 있어야 하는 도구는 다음과 같습니다.

참고

Visual Studio Code는 Windows, Mac 및 Ubuntu에서 사용할 수 있습니다.

소스 코드 다운로드

원격 모니터링 소스 코드 리포지토리에는 마이크로 서비스 Docker 이미지를 실행하는 데 필요한 소스 코드 및 Docker 구성 파일이 포함되어 있습니다.

리포지토리의 로컬 버전을 복제하고 만들려면 명령줄 환경을 사용하여 로컬 머신의 적절한 폴더로 이동합니다. 그런 후, 다음 명령 세트 중 하나를 실행하여 NET 리포지토리를 복제합니다.

.NET 마이크로 서비스 구현의 최신 버전을 다운로드하려면 다음을 실행합니다.

git clone --recurse-submodules https://github.com/Azure/azure-iot-pcs-remote-monitoring-dotnet.git

# To retrieve the latest submodules, run the following command:

cd azure-iot-pcs-remote-monitoring-dotnet
git submodule foreach git pull origin master

참고

이러한 명령은 마이크로 서비스를 로컬로 실행하는 데 사용하는 스크립트 외에도 모든 마이크로 서비스에 대한 소스 코드를 다운로드합니다. Docker에서 마이크로 서비스를 실행하는 데는 소스 코드가 필요하지 않지만, 나중에 솔루션 가속기를 수정하고 변경 내용을 로컬로 테스트하려는 경우에는 소스 코드가 유용합니다.

Azure 서비스 배포

이 문서에서는 마이크로 서비스를 로컬로 실행하는 방법을 보여주지만 클라우드에서 실행되는 Azure 서비스를 사용합니다. 다음 스크립트를 사용하여 Azure 서비스를 배포합니다. 다음 스크립트 예제에서는 Windows 머신에서 .NET 리포지토리를 사용한다고 가정합니다. 다른 환경에서 작업하는 경우 경로, 파일 확장명 및 경로 구분 기호를 적절하게 조정합니다.

새 Azure 리소스 만들기

아직 필요한 Azure 리소스를 만들지 않은 경우 다음 단계를 수행합니다.

  1. 명령줄 환경에서 리포지토리의 복제된 복사본에 있는 \services\scripts\local\launch 폴더로 이동합니다.

  2. 다음 명령을 실행하여 pcs CLI 도구를 설치하고 Azure 계정에 로그인합니다.

    npm install -g iot-solutions
    pcs login
    
  3. start.cmd 스크립트를 실행합니다. 스크립트에서 다음 정보를 요구하는 메시지가 표시됩니다.

    • 솔루션 이름

    • 사용할 Azure 구독입니다.

    • 사용할 Azure 데이터 센터의 위치

      스크립트는 솔루션 이름을 사용하여 Azure에서 리소스 그룹을 만듭니다. 이 리소스 그룹에는 솔루션 가속기에서 사용하는 Azure 리소스가 포함됩니다. 해당 리소스가 더 이상 필요하지 않으면 이 리소스 그룹을 삭제할 수 있습니다.

      또한 이 스크립트는 로컬 머신에 PCS 접두사가 있는 환경 변수 세트도 추가합니다. 이러한 환경 변수는 Azure Key Vault 리소스에서 읽을 수 있도록 원격 모니터링에 대한 세부 정보를 제공합니다. 이 Key Vault 리소스는 원격 모니터링에서 해당 구성 값을 읽는 위치입니다.

      스크립트가 완료되면 환경 변수도 홈 폴더>\.pcs\<solution name.env>라는< 파일에 저장됩니다. 나중에 솔루션 가속기 배포에 사용할 수 있습니다. docker-compose를 실행할 때 로컬 컴퓨터에 설정된 환경 변수는 services\scripts\local\.env 파일의 값을 재정의합니다.

  4. 명령줄 환경에서 나갑니다.

기존 Azure 리소스 사용

필요한 Azure 리소스를 이미 만든 경우 로컬 머신에 해당 환경 변수를 만듭니다. 다음에 대한 환경 변수를 설정합니다.

  • PCS_KEYVAULT_NAME - Azure Key Vault 리소스의 이름
  • PCS_AAD_APPID - AAD 애플리케이션 ID
  • PCS_AAD_APPSECRET - AAD 애플리케이션 비밀

구성 값은 이 Azure Key Vault 리소스에서 읽습니다. 이러한 환경 변수는 배포에서 <홈 폴더>\.pcs\<solution name.env> 파일에 저장될 수 있습니다. 로컬 머신에 설정된 환경 변수는 docker-compose를 실행할 때 services\scripts\local\.env 파일의 값을 재정의합니다.

마이크로 서비스에 필요한 구성 중 일부는 초기 배포 시 생성된 Key Vault 인스턴스에 저장됩니다. keyvault의 해당 변수는 필요에 따라 수정해야 합니다.

마이크로 서비스 실행

이 섹션에서는 원격 모니터링 마이크로 서비스를 실행합니다. 웹 UI를 고유하게 실행하고, Docker에서 디바이스 시뮬레이션 서비스를 실행하고, Visual Studio Code에서 마이크로 서비스를 실행합니다.

코드 빌드

명령 프롬프트에서 azure-iot-pcs-remote-monitoring-dotnet\services로 이동한 후 다음 명령을 실행하여 코드를 작성합니다.

dotnet restore
dotnet build -c Release

그 외의 모든 마이크로 서비스를 로컬 머신에 배포

다음 단계에서는 Visual Studio Code 원격 모니터링 마이크로 서비스를 실행하는 방법을 보여 줍니다.

  1. Visual Studio Code를 시작합니다.
  2. VS Code에서 azure-iot-pcs-remote-monitoring-dotnet 폴더를 엽니다.
  3. azure-iot-pcs-remote-monitoring-dotnet 폴더에 .vscode라는 새 폴더를 만듭니다.
  4. services\scripts\local\launch\idesettings\vscode에서 launch.jsontasks.json 파일을 방금 만든 .vscode 폴더로 복사합니다.
  5. VS Code에서 디버그 패널 을 열고 모두 실행 마이크로 서비스 구성을 실행합니다 . 이 구성은 Docker에서 디바이스 시뮬레이션 마이크로 서비스를 실행하고 디버거에서 다른 마이크로 서비스를 실행합니다.

디버그 콘솔에서 실행 중인 모든 마이크로 서비스 실행 의 출력은 다음과 같습니다.

Deploy-Local-Microservices

웹 UI 실행

이 단계에서는 웹 UI를 시작합니다. 로컬 복사본의 azure-iot-pcs-remote-monitoring-dotnet\webui 폴더로 이동한 후 다음 명령을 실행합니다.

npm install
npm start

시작이 완료되면 브라우저에 http://localhost:3000/dashboard 페이지가 표시됩니다. 이 페이지의 오류는 예상된 것입니다. 애플리케이션을 오류 없이 표시하려면 다음 단계를 완료합니다.

NGINX 구성 및 실행

로컬 머신에서 실행되는 웹 애플리케이션 및 마이크로 서비스를 연결하는 역방향 프록시 서버를 설정합니다.

  • webui\scripts\localhost 폴더의 nginx.conf 파일을 nginx\conf 설치 디렉터리에 복사합니다.
  • nginx를 실행합니다.

nginx 실행에 대한 자세한 내용은 Windows용 nginx를 참조하세요.

대시보드에 연결

원격 모니터링 솔루션 대시보드에 액세스하려면 브라우저에서 http://localhost:9000으로 이동합니다.

정리

불필요한 요금을 방지하려면 테스트를 마친 후 Azure 구독에서 클라우드 서비스를 제거합니다. 서비스를 제거하려면 Azure Portal로 이동하여 start.cmd 스크립트에서 만든 리소스 그룹을 삭제합니다.

또한 GitHub에서 소스 코드를 복제할 때 만들어진 원격 모니터링 리포지토리의 로컬 복사본을 삭제할 수도 있습니다.

다음 단계

원격 모니터링 솔루션을 배포했으니, 다음 단계는 솔루션 대시보드의 기능을 탐색하는 것입니다.