Włączanie debugera migawek dla aplikacji .NET i .NET Core w Azure Functions
Debuger migawek działa obecnie w przypadku aplikacji ASP.NET i ASP.NET Core działających w Azure Functions w planach usług systemu Windows.
Zalecamy uruchomienie aplikacji w warstwie usługi Podstawowa lub nowszej podczas korzystania z narzędzia Snapshot Debugger.
W przypadku większości aplikacji warstwy usługi Bezpłatna i Współdzielona nie mają wystarczającej ilości pamięci ani miejsca na dysku, aby zapisać migawki.
Wymaganie wstępne
Włączanie monitorowania usługi Application Insights w aplikacji usługi Functions
Włączanie debugera migawek
Aby włączyć narzędzie Snapshot Debugger w aplikacji usługi Functions, dodaj snapshotConfiguration
właściwość do pliku host.json i ponownie wdróż funkcję. Przykład:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": true
}
}
}
}
Debuger migawek jest wstępnie zainstalowany w ramach środowiska uruchomieniowego Azure Functions i jest domyślnie wyłączony. Ponieważ jest on uwzględniony w środowisku uruchomieniowym, nie trzeba dodawać dodatkowych pakietów NuGet ani ustawień aplikacji.
W prostym przykładzie aplikacji funkcji platformy .NET Core, która jest następująca: .csproj
, {Your}Function.cs
i host.json
ma włączoną funkcję 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
}
}
}
}
Włączanie debugera migawek dla innych chmur
Obecnie jedynymi regionami, które wymagają modyfikacji punktu końcowego, są Azure Government i platforma Microsoft Azure obsługiwana przez firmę 21Vianet.
Poniższy przykład przedstawia zaktualizowany host.json
punkt końcowy agenta chmury dla instytucji rządowych USA:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
},
"snapshotConfiguration": {
"isEnabled": true,
"agentEndpoint": "https://snapshot.monitor.azure.us"
}
}
}
}
Oto obsługiwane zastąpienia punktu końcowego agenta snapshot Debugger:
Właściwość | Chmura dla instytucji rządowych USA | Chmura w Chinach |
---|---|---|
AgentEndpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
Wyłączanie debugera migawek
Aby wyłączyć debuger migawek w aplikacji usługi Functions, zaktualizuj host.json
plik, ustawiając snapshotConfiguration.isEnabled
właściwość na false
.
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": false
}
}
}
}
Zalecamy włączenie debugera migawki we wszystkich aplikacjach w celu ułatwienia diagnostyki wyjątków aplikacji.
Następne kroki
- Wygeneruj ruch do aplikacji, który może wyzwolić wyjątek. Następnie poczekaj od 10 do 15 minut, aż migawki zostaną wysłane do wystąpienia usługi Application Insights.
- Wyświetl migawki w Azure Portal.
- Dostosuj konfigurację debugera migawek na podstawie przypadku użycia w aplikacji usługi Functions. Aby uzyskać więcej informacji, zobacz Konfiguracja migawki w pliku host.json.
- Aby uzyskać pomoc dotyczącą rozwiązywania problemów z debugerem migawek, zobacz Rozwiązywanie problemów z debugerem migawek.