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 pada Azure Functions pada paket layanan Windows.

Kami menyarankan agar Anda menjalankan aplikasi Anda 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.

Prasyarat

Mengaktifkan 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
      }
    }
  }
}

Snapshot Debugger telah diinstal sebelumnya sebagai bagian dari runtime Azure Functions dan dinonaktifkan secara default. Karena disertakan dalam runtime, Anda tidak perlu menambahkan paket NuGet tambahan atau pengaturan aplikasi.

Dalam contoh aplikasi .NET Core Function sederhana yang mengikuti, , .csproj{Your}Function.cs, dan host.json mengaktifkan Snapshot Debugger:

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 dioperasikan oleh 21Vianet.

Contoh berikut menunjukkan pembaruan host.json dengan titik akhir agen Cloud Pemerintah AS:

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

Berikut adalah penimpaan yang didukung dari titik akhir agen Snapshot Debugger:

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

Nonaktifkan Snapshot Debugger

Untuk menonaktifkan Snapshot Debugger di aplikasi Functions Anda, perbarui file Anda host.json dengan mengatur properti ke snapshotConfiguration.isEnabledfalse.

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

Sebaiknya Anda mengaktifkan Snapshot Debugger di semua aplikasi Anda untuk memudahkan diagnostik pengecualian aplikasi.

Langkah berikutnya

  • Hasilkan lalu lintas ke aplikasi Anda yang dapat memicu pengecualian. Kemudian tunggu 10 hingga 15 menit agar rekam jepret dikirim ke instans Application Insights.
  • Lihat rekam jepret di portal Microsoft Azure.
  • Kustomisasi konfigurasi Snapshot Debugger berdasarkan kasus penggunaan Anda di aplikasi Functions Anda. Untuk informasi selengkapnya, lihat Konfigurasi rekam jepret di host.json.
  • Untuk bantuan tentang pemecahan masalah Snapshot Debugger, lihat Pemecahan masalah Snapshot Debugger.