Bagikan melalui


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 menggunakan Snapshot Debugger. Untuk sebagian besar aplikasi:

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

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

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.

Anda dapat memverifikasi bahwa Snapshot Debugger telah diaktifkan dengan memeriksa 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 yang diperbarui 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 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 Anda host.json dengan mengatur snapshotConfiguration.isEnabled properti ke false.

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

Langkah berikutnya