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 Windows Service Plans.
Kami sarankan Anda menjalankan aplikasi Anda pada 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.
Prasyarat
Aktifkan Snapshot Debugger
Jika Anda menjalankan jenis layanan Azure yang berbeda, berikut adalah instruksi untuk mengaktifkan Snapshot Debugger di platform lain yang didukung:
- Azure App Service
- Azure Cloud Services
- layanan Azure Service Fabric
- Microsoft Azure Virtual Machines dan set skala komputer virtual
- Komputer virtual atau fisik lokal
Untuk mengaktifkan Snapshot Debugger di aplikasi Function, Anda harus memperbarui file host.json dengan menambahkan properti snapshotConfigurationseperti yang didefinisikan di bawah ini dan menyebar ulang fungsi Anda.
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": true
}
}
}
}
Snapshot Debugger telah dipasang sebelumnya sebagai bagian dari runtime Azure Functions, yang secara default dinonaktifkan.
Karena Snapshot Debugger disertakan dalam runtime Azure Functions, tidak diperlukan untuk menambahkan paket NuGet tambahan atau pengaturan aplikasi.
Sebagai referensi, untuk aplikasi Function sederhana (.NET Core), di bawah ini adalah tampilan .csproj, {Your}Function.cs, dan host.json setelah diaktifkan Snapshot Debugger.
Proyek 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>
Kelas Function
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");
}
}
}
File host
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
},
"snapshotConfiguration": {
"isEnabled": true
}
}
}
}
Aktifkan Snapshot Debugger untuk cloud lain
Saat ini satu-satunya wilayah yang memerlukan modifikasi titik akhir adalah Azure Government dan Azure Tiongkok.
Di bawah ini adalah contoh host.json yang diperbarui dengan titik akhir agen Cloud Pemerintan AS:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
},
"snapshotConfiguration": {
"isEnabled": true,
"agentEndpoint": "https://snapshot.monitor.azure.us"
}
}
}
}
Di bawah ini adalah ambil alih titik akhir agen Snapshot Debugger yang didukung:
| 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 Function, Anda hanya perlu memperbarui file host.json Anda dengan mengatur ke false properti snapshotConfiguration.isEnabled.
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": false
}
}
}
}
Kami sarankan 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 terkirim ke instans Application Insights.
- Lihat rekam jepret di portal Microsoft Azure.
- Sesuaikan konfigurasi Snapshot Debugger berdasarkan kasus penggunaan di aplikasi Function Anda. Untuk informasi selengkapnya, lihat konfigurasi rekam jepret di host.jsdi.
- Untuk bantuan tentang pemecahan masalah Snapshot Debugger, lihat Pemecahan masalah Snapshot Debugger.