Aktifkan Snapshot Debugger untuk aplikasi .NET dan .NET Core di Azure Functions

Snapshot Debugger saat ini berfungsi untuk aplikasi ASP.NET dan ASP.NET Core yang berjalan di Azure Functions pada paket layanan Windows.

Kami menyarankan agar Anda menjalankan aplikasi di tingkat layanan Dasar atau yang lebih tinggi saat Anda menggunakan Snapshot Debugger. Untuk sebagian besar aplikasi:

  • Tingkat layanan Gratis dan Bersama tidak memiliki cukup memori atau ruang disk untuk menyimpan rekam jepret.
  • Tingkatan Konsumsi saat ini tidak tersedia untuk Snapshot Debugger.

Snapshot Debugger telah diinstal sebelumnya sebagai bagian dari runtime Azure Functions. Anda tidak perlu menambahkan paket NuGet tambahan atau pengaturan aplikasi.

Prasyarat

Aktifkan pemantauan Application Insights di aplikasi Functions Anda.

Aktifkan Snapshot Debugger

Untuk mengaktifkan Snapshot Debugger di aplikasi Functions Anda, tambahkan snapshotConfiguration properti ke file host.json Anda dan sebarkan ulang fungsi Anda. Contohnya:

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "snapshotConfiguration": {
        "isEnabled": true
      }
    }
  }
}

Hasilkan lalu lintas ke aplikasi Anda yang dapat memicu pengecualian. Kemudian tunggu 10 hingga 15 menit agar rekam jepret dikirim ke instans Application Insights.

Untuk memverifikasi bahwa Snapshot Debugger diaktifkan, periksa file aplikasi fungsi .NET Anda. Misalnya, dalam aplikasi fungsi .NET sederhana berikut, .csproj, {Your}Function.cs, dan host.json aplikasi .NET Anda menampilkan Snapshot Debugger sebagai diaktifkan:

Project.csproj

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.31" />
</ItemGroup>
<ItemGroup>
    <None Update="host.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
</ItemGroup>
</Project>

{Your}Function.cs

using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;

namespace SnapshotCollectorAzureFunction
{
    public static class ExceptionFunction
    {
        [FunctionName("ExceptionFunction")]
        public static Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            throw new NotImplementedException("Dummy");
        }
    }
}

host.json

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingExcludedTypes": "Request",
      "samplingSettings": {
        "isEnabled": true
      },
      "snapshotConfiguration": {
        "isEnabled": true
      }
    }
  }
}

Mengaktifkan Snapshot Debugger untuk cloud lain

Saat ini, satu-satunya wilayah yang memerlukan modifikasi titik akhir adalah Azure Government dan Microsoft Azure yang dioperasikan oleh 21Vianet.

Contoh berikut menunjukkan host.json yang diperbarui dengan titik akhir agen Cloud Pemerintah Amerika Serikat.

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingExcludedTypes": "Request",
      "samplingSettings": {
        "isEnabled": true
      },
      "snapshotConfiguration": {
        "isEnabled": true,
        "agentEndpoint": "https://snapshot.monitor.azure.us"
      }
    }
  }
}

Berikut adalah penggantian titik akhir agen Snapshot Debugger yang didukung:

Properti Cloud Pemerintah AS Cloud Tiongkok
agentEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Menonaktifkan Snapshot Debugger

Untuk menonaktifkan Snapshot Debugger di aplikasi Functions Anda, perbarui file host.json Anda

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "snapshotConfiguration": {
        "isEnabled": false
      }
    }
  }
}