Povolení snapshot debuggeru pro aplikace .NET a .NET Core v Azure Functions
Snapshot Debugger v současné době funguje pro ASP.NET a ASP.NET Core aplikace, které běží na Azure Functions v plánech služeb pro Windows.
Při použití nástroje Snapshot Debugger doporučujeme aplikaci spustit na úrovni služby Basic nebo vyšší.
U většiny aplikací nemají úrovně služby Free a Shared dostatek paměti nebo místa na disku k ukládání snímků.
Požadavek
Povolení monitorování Application Insights v aplikaci Functions
Povolení snapshot debuggeru
Pokud chcete v aplikaci Functions povolit Snapshot Debugger, přidejte snapshotConfiguration
vlastnost do souboru host.json a znovu nasaďte funkci. Příklad:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": true
}
}
}
}
Snapshot Debugger je předinstalovaný jako součást modulu runtime Azure Functions a ve výchozím nastavení je zakázaný. Protože je součástí modulu runtime, nemusíte přidávat další balíčky NuGet ani nastavení aplikace.
V jednoduchém příkladu aplikace funkcí .NET Core, který následuje , .csproj
{Your}Function.cs
a host.json
mají povolený 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
}
}
}
}
Povolení snapshot debuggeru pro jiné cloudy
Jediné oblasti, které v současné době vyžadují úpravy koncových bodů, jsou Azure Government a Microsoft Azure provozované společností 21Vianet.
Následující příklad ukazuje host.json
aktualizaci pomocí koncového bodu agenta cloudu pro státní správu USA:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
},
"snapshotConfiguration": {
"isEnabled": true,
"agentEndpoint": "https://snapshot.monitor.azure.us"
}
}
}
}
Tady jsou podporovaná přepsání koncového bodu agenta Snapshot Debugger:
Vlastnost | Cloud pro státní správu USA | Cloud pro Čínu |
---|---|---|
Koncový bod agenta | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
Zakázat Snapshot Debugger
Pokud chcete v aplikaci Functions zakázat Snapshot Debugger, aktualizujte host.json
soubor nastavením snapshotConfiguration.isEnabled
vlastnosti na false
.
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": false
}
}
}
}
Doporučujeme, abyste měli pro všechny aplikace povolené snapshot debugger, aby se usnadnila diagnostika výjimek aplikací.
Další kroky
- Vygenerujte provoz do aplikace, který může aktivovat výjimku. Pak počkejte 10 až 15 minut, než se snímky odešlou do instance Application Insights.
- Zobrazení snímků v Azure Portal
- Přizpůsobte konfiguraci snapshot debuggeru na základě vašeho případu použití v aplikaci Functions. Další informace najdete v tématu Konfigurace snímku v souboru host.json.
- Nápovědu k řešení potíží s nástrojem Snapshot Debugger najdete v tématu Řešení potíží s nástrojem Snapshot Debugger.