스냅샷 디버거는 관심 있는 코드가 실행될 때 프로덕션 내 앱의 스냅샷을 만듭니다. 디버거에 스냅샷을 만들도록 지시하려면 코드에서 스냅포인트 및 로그포인트를 설정합니다. 디버거를 사용하면 프로덕션 애플리케이션의 트래픽에 영향을 주지 않고 무엇이 잘못되었는지 정확하게 확인할 수 있습니다. 스냅샷 디버거를 사용하면 프로덕션 환경에서 발생하는 문제를 해결하는 데 걸리는 시간을 크게 줄일 수 있습니다.
snappoint 및 logpoint는 중단점과 유사하지만, 중단점과 달리 snappoint는 적중될 때 애플리케이션을 중지시키지 않습니다. 일반적으로 스냅포인트에서 스냅샷을 캡처하는 데는 10~20밀리초가 걸립니다.
이 자습서에서는 다음을 수행합니다.
- 스냅샷 디버거 시작
- 스냅포인트 설정 및 스냅샷 보기
- 로그포인트 설정
필수 조건
Azure Kubernetes Services에 대한 스냅샷 디버거는 Azure 개발 워크로드를 사용하는 Visual Studio 2019 Enterprise 이상에서만 사용할 수 있습니다. (개별 구성 요소 탭 아래에서 디버깅 및 테스트> 아래에 있습니다.스냅샷 디버거.)
아직 설치되지 않은 경우 Visual Studio 2019 Enterprise를 설치합니다.
스냅샷 컬렉션은 다음 Azure Kubernetes Services 웹앱에 사용할 수 있습니다.
ASP.NET .NET Core 2.2 이상에서 실행되는 Core 애플리케이션은 Debian 9에서 실행됩니다.
ASP.NET Alpine 3.8에서 .NET Core 2.2 이상에서 실행되는 Core 애플리케이션입니다.
ASP.NET Core 애플리케이션은 Ubuntu 18.04에서 .NET Core 2.2 이상에서 실행됩니다.
비고
AKS에서 스냅샷 디버거에 대한 지원을 사용하도록 설정하기 위해 Docker 이미지에 대한 설정을 보여 주는 Dockerfile 집합이 포함된 리포지토리를 제공했습니다.
프로젝트를 열고 스냅샷 디버거 시작
디버그를 스냅샷할 프로젝트를 엽니다.
중요합니다
디버그를 스냅샷하려면 Azure Kubernetes 서비스에 게시된 동일한 버전의 소스 코드를 열어야 합니다.
디버그 > 스냅샷 디버거 부착을 선택합니다. 웹앱이 배포된 AKS 리소스와 Azure Storage 계정을 선택한 다음 부착을 클릭합니다. 스냅샷 디버거는 Azure App Service 및 Azure VM(Virtual Machines) 및 Virtual Machine Scale Sets도 지원합니다.
비고
(Visual Studio 2019 버전 16.2 이상) 스냅샷 디버거는 Azure 클라우드 지원을 사용하도록 설정했습니다. 선택한 Azure 리소스와 Azure Storage 계정이 모두 동일한 클라우드에 있는지 확인합니다. 엔터프라이즈의 Azure 규정 준수 구성에 대한 질문이 있는 경우 Azure 관리자에게 문의하세요.
이제 Visual Studio가 스냅샷 디버깅 모드에 있습니다.
모듈 창에는 모든 모듈이 Azure App Service에 대해 로드된 경우 표시됩니다(이 창을 열려면 Windows > 모듈 디버그 > 선택).
스냅 포인트 설정
코드 편집기에서 관심 있는 코드 줄 옆에 있는 왼쪽 여백을 클릭하여 스냅포인트(snap point)를 설정합니다. 실행될 것으로 알고 있는 코드인지 확인합니다.
스냅포인트를 켜려면 [컬렉션 시작 ]을 클릭합니다.
팁 (조언)
스냅샷을 볼 때는 단계를 수행할 수 없지만 코드에 여러 스냅포인트를 배치하여 다른 코드 줄에서 실행을 따를 수 있습니다. 코드에 여러 스냅포인트가 있는 경우 스냅샷 디버거는 해당 스냅샷이 동일한 최종 사용자 세션의 스냅샷인지 확인합니다. 스냅샷 디버거는 앱을 치는 사용자가 많은 경우에도 이 작업을 수행합니다.
스냅샷 만들기
snappoint가 설정되면 웹 사이트의 브라우저 보기로 이동하여 표시된 코드 줄을 실행하여 스냅샷을 수동으로 생성하거나 사용자가 사이트 사용에서 스냅샷을 생성할 때까지 기다릴 수 있습니다.
스냅샷 데이터 검사
스냅포인트가 적중되면 진단 도구 창에 스냅샷이 나타납니다. 이 창을 열려면 Windows > 진단 도구 표시 디버그>를 선택합니다.
스냅포인트를 두 번 클릭하여 코드 편집기에서 스냅샷을 엽니다.
이 보기에서 변수를 마우스로 가리키면 DataTips를 보고, 로컬, 감시, 호출 스택 창을 사용할 수 있으며, 또한 식을 평가할 수 있습니다.
웹 사이트 자체는 여전히 라이브 상태이며 최종 사용자는 영향을 받지 않습니다. 스냅샷은 기본적으로 스냅포인트당 하나의 스냅샷만 캡처됩니다. 스냅샷을 캡처한 후에는 스냅포인트가 꺼집니다. 스냅포인트에서 다른 스냅샷을 캡처하려면 컬렉션 업데이트를 클릭하여 스냅포인트를 다시 설정할 수 있습니다.
앱에 스냅포인트를 더 추가하고 컬렉션 업데이트 단추를 사용하여 해당 스냅포인트를 켤 수도 있습니다.
도움이 필요하세요? 스냅샷 디버깅 페이지에 대한문제 해결 및 알려진 문제 및 FAQ를 참조하세요.
조건부 스냅포인트 설정
앱에서 특정 상태를 다시 만들기 어려운 경우 조건부 스냅포인트를 사용하는 것이 좋습니다. 조건부 스냅포인트는 변수에 검사할 특정 값이 포함된 경우와 같이 스냅샷을 만드는 시기를 제어하는 데 도움이 됩니다. 식, 필터 또는 적중 횟수를 사용하여 조건을 설정할 수 있습니다.
조건부 스냅포인트를 만들려면
스냅포인트 아이콘(속이 빈 구)을 마우스 오른쪽 단추로 클릭하고 설정을 선택합니다.
snappoint 설정 창에 식을 입력합니다.
앞의 그림에서 스냅샷은 스냅포인트
visitor.FirstName == "Dan"
에 대해서만 만들어집니다.
로그포인트 설정
스냅포인트를 적중할 때 스냅샷을 만드는 것 외에도 메시지를 기록하도록 스냅포인트를 구성할 수도 있습니다(즉, 로그포인트 만들기). 앱을 다시 배포하지 않고도 로그포인트를 설정할 수 있습니다. 로그포인트는 가상으로 실행되며 실행 중인 애플리케이션에 영향을 주지 않거나 부작용을 일으키지 않습니다.
로그포인트를 만들려면
snappoint 아이콘(파란색 육각형)을 마우스 오른쪽 단추로 클릭하고 설정을 선택합니다.
스냅포인트 설정 창에서 액션을 선택합니다.
메시지 필드에서 기록하려는 새 로그 메시지를 입력할 수 있습니다. 또한 중괄호 안에 배치하여 로그 메시지에서 변수를 평가할 수 있습니다.
출력으로 보내기 창을 선택하면 로그포인트가 적중되면 진단 도구 창에 메시지가 나타납니다.
애플리케이션 로그에 보내기를 선택하면 로그포인트가 적중되면
System.Diagnostics.Trace
와 같은 (또는ILogger
.NET Core에서 ) 메시지를 볼 수 있는 모든 위치에 메시지가 표시됩니다.
관련 콘텐츠
이 자습서에서는 Azure Kubernetes용 스냅샷 디버거를 사용하는 방법을 알아보았습니다. 이 기능에 대한 자세한 내용을 읽을 수 있습니다.