Azure App Service에서 .NET 앱용 스냅샷 디버거 사용하도록 설정

현재 스냅샷 디버거는 Windows 서비스 계획의 Azure App Service에서 실행되는 ASP.NET과 ASP.NET Core 앱을 지원합니다.

참고 항목

스냅샷 디버거를 사용하는 경우 기본 서비스 계층 이상에서 애플리케이션을 실행하는 것이 좋습니다. 대부분의 애플리케이션의 경우 무료 및 공유 서비스 계층에는 스냅샷을 저장할 수 있는 충분한 메모리나 디스크 공간이 없습니다. 사용량 계층은 현재 스냅샷 디버거에 사용할 수 없습니다.

스냅샷 디버거 사용

스냅샷 디버거는 App Services 런타임의 일부로 미리 설치되어 있지만 App Service 앱에 대한 스냅샷을 가져오도록 해당 기능을 켜야 합니다. 스냅샷 디버거를 앱에 사용하도록 설정하려면 아래의 지침을 따르세요.

참고 항목

.NET Core의 미리 보기 버전을 사용하거나 애플리케이션에서 직접 또는 종속 어셈블리를 통해 간접적으로 Application Insights SDK를 참조하는 경우 다른 환경에 스냅샷 디버거 사용의 지침에 따라 애플리케이션과 함께 Microsoft.ApplicationInsights.SnapshotCollector NuGet 패키지를 포함합니다.

참고 항목

Application Insights 스냅샷 디버거의 코드 없는 설치는 .NET Core 지원 정책을 따릅니다. 지원되는 런타임에 대한 자세한 내용은 .NET Core 지원 정책을 참조하세요.

.NET 앱이 배포되면 다음을 수행합니다.

  1. App Service에 대한 Azure 제어판으로 이동합니다.

  2. 설정>Application Insights 페이지로 차례로 이동합니다.

    Screenshot showing the Enable App Insights on App Services portal.

  3. 페이지의 지침에 따라 새 리소스를 만들거나 기존 App Insights 리소스를 선택하여 앱을 모니터링합니다.

  4. 스냅샷 디버거 토글을 켜기로 전환합니다.

    Screenshot showing how to add App Insights site extension.

  5. 이제 스냅샷 디버거가 App Services 앱 설정을 사용하여 활성화됩니다.

    Screenshot showing App Setting for Snapshot Debugger.

다른 유형의 Azure 서비스를 실행하는 경우 지원되는 다른 플랫폼에서 스냅샷 디버거를 사용하도록 설정하는 지침은 다음과 같습니다.

다른 클라우드의 스냅샷 디버거를 사용하도록 설정

현재 엔드포인트 수정이 필요한 유일한 지역은 Application Insights 연결 문자열을 통한 Azure Government21Vianet에서 운영하는 Microsoft Azure입니다.

연결 문자열 속성 미국 정부 클라우드: 중국 클라우드
SnapshotEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

다른 연결 재정의에 대한 자세한 내용은 Application Insights 설명서를 참조하세요.

스냅샷 수집에 Microsoft Entra 인증 사용

Application Insights 스냅샷 디버거는 스냅샷 수집을 위한 Microsoft Entra 인증을 지원합니다. 즉, 애플리케이션의 모든 스냅샷을 수집하려면 애플리케이션을 인증하고 필요한 애플리케이션 설정을 스냅샷 디버거 에이전트에 제공해야 합니다.

현재 스냅샷 디버거는 애플리케이션에서 Application Insights SDK를 사용하여 Microsoft Entra ID를 참조하고 구성할 때만 Microsoft Entra 인증을 지원합니다.

스냅샷 수집을 위해 Microsoft Entra ID를 켜려면 다음을 수행합니다.

  1. Application Insights 리소스에 대해 인증하는 데 사용할 관리 ID를 만들어 App Service에 추가합니다.

    1. 시스템이 할당한 관리 ID는 다음 설명서를 참조하세요.

    2. 사용자가 할당한 관리 ID는 다음 설명서를 참조하세요.

  2. Application Insights 리소스에서 Microsoft Entra ID를 구성하고 켭니다. 자세한 내용은 다음 설명서를 참조하세요.

  3. 스냅샷 디버거 에이전트가 사용할 관리 ID를 알 수 있도록 하는 데 사용되는 다음 애플리케이션 설정을 추가합니다.

시스템 할당 ID의 경우:

앱 설정
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AD

사용자가 할당한 ID의 경우:

앱 설정
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AD;ClientID={사용자가 할당한 ID의 클라이언트 ID}

스냅샷 디버거 사용 안 함

스냅샷 디버거를 사용하지 않도록 설정하려면 사용 단계를 반복합니다. 그러나 스냅샷 디버거 토글을 끄기로 전환합니다.

Azure Resource Manager 템플릿

Azure App Service의 경우 스냅샷 디버거와 Profiler를 사용하도록 Azure Resource Manager 템플릿 내에서 앱 설정을 설정할 수 있습니다. 예시:

{
  "apiVersion": "2015-08-01",
  "name": "[parameters('webSiteName')]",
  "type": "Microsoft.Web/sites",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[variables('hostingPlanName')]"
  ],
  "tags": { 
    "[concat('hidden-related:', resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName')))]": "empty",
    "displayName": "Website"
  },
  "properties": {
    "name": "[parameters('webSiteName')]",
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]"
  },
  "resources": [
    {
      "apiVersion": "2015-08-01",
      "name": "appsettings",
      "type": "config",
      "dependsOn": [
        "[parameters('webSiteName')]",
        "[concat('AppInsights', parameters('webSiteName'))]"
      ],
      "properties": {
        "APPINSIGHTS_INSTRUMENTATIONKEY": "[reference(resourceId('Microsoft.Insights/components', concat('AppInsights', parameters('webSiteName'))), '2014-04-01').InstrumentationKey]",
        "APPINSIGHTS_PROFILERFEATURE_VERSION": "1.0.0",
        "APPINSIGHTS_SNAPSHOTFEATURE_VERSION": "1.0.0",
        "DiagnosticServices_EXTENSION_VERSION": "~3",
        "ApplicationInsightsAgent_EXTENSION_VERSION": "~2"
      }
    }
  ]
},

지원되지 않는 시나리오

아래에서 Snapshot Collector가 지원되지 않는 시나리오를 확인할 수 있습니다.

시나리오 파생 작업 권장
애플리케이션에서 직접 Snapshot Collector SDK(.csproj)를 사용하고 "Interop" 고급 옵션을 사용하도록 설정했습니다. 로컬 Application Insights SDK(Snapshot Collector 원격 분석 포함)가 손실되고 사용할 수 있는 스냅샷이 없습니다.
System.ArgumentException: telemetryProcessorTypedoes not implement ITelemetryProcessor.를 사용하여 시작 시 애플리케이션이 크래시할 수 있습니다.
"Interop" Application Insights 커넥터 기능에 대해 자세히 알아보세요.
"Interop" 고급 옵션을 사용하는 경우 코드리스 Snapshot Collector 삽입을 사용합니다(Azure Portal을 통해 사용하도록 설정됨).

다음 단계

  • 예외를 트리거할 수 있는 애플리케이션에 대한 트래픽을 생성합니다. 그런 다음, 스냅샷을 10~15분 동안 기다려서 Application Insights 인스턴스로 보내기 시작합니다.
  • Azure Portal에서 스냅샷을 참조하세요.
  • 스냅샷 디버거 문제 해결에 도움이 필요한 경우 스냅샷 디버거 문제 해결을 참조하세요.