Abilitare Snapshot Debugger per le app .NET e .NET Core in Funzioni di Azure
Snapshot Debugger attualmente funziona per le app ASP.NET e ASP.NET Core in esecuzione in Funzioni di Azure nei piani di servizio di Windows.
È consigliabile eseguire l'applicazione nel livello di servizio Basic o superiore quando si usa Snapshot Debugger.
Per la maggior parte delle applicazioni, i livelli di servizio Gratuito e Condiviso non dispongono di memoria o spazio su disco sufficiente per salvare gli snapshot.
Prerequisito
Abilitare il monitoraggio di Application Insights nell'app per le funzioni
Abilitare snapshot debugger
Per abilitare Snapshot Debugger nell'app per le funzioni, aggiungere la snapshotConfiguration
proprietà al file host.json e ridistribuire la funzione. Ad esempio:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": true
}
}
}
}
Snapshot Debugger è preinstallato come parte del runtime di Funzioni di Azure ed è disabilitato per impostazione predefinita. Poiché è incluso nel runtime, non è necessario aggiungere altri pacchetti NuGet o impostazioni dell'applicazione.
Nell'esempio di semplice app per le funzioni .NET Core seguente, .csproj
, {Your}Function.cs
e host.json
sono abilitati 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
}
}
}
}
Abilitare Snapshot Debugger per altri cloud
Attualmente, le uniche aree che richiedono modifiche agli endpoint sono Azure per enti pubblici e Microsoft Azure gestito da 21Vianet.
L'esempio seguente mostra l'aggiornamento host.json
con l'endpoint dell'agente us Government Cloud:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
},
"snapshotConfiguration": {
"isEnabled": true,
"agentEndpoint": "https://snapshot.monitor.azure.us"
}
}
}
}
Ecco le sostituzioni supportate dell'endpoint dell'agente Snapshot Debugger:
Proprietà | US Government Cloud | Cloud per la Cina |
---|---|---|
AgentEndpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
Disabilitare snapshot debugger
Per disabilitare Snapshot Debugger nell'app funzioni, aggiornare il host.json
file impostando la snapshotConfiguration.isEnabled
proprietà su false
.
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": false
}
}
}
}
È consigliabile abilitare Snapshot Debugger in tutte le app per semplificare la diagnostica delle eccezioni dell'applicazione.
Passaggi successivi
- Generare traffico verso l'applicazione in grado di attivare un'eccezione. Attendere quindi da 10 a 15 minuti affinché gli snapshot vengano inviati all'istanza di Application Insights.
- Visualizzare gli snapshot nel portale di Azure.
- Personalizzare la configurazione di Snapshot Debugger in base al caso d'uso nell'app Per le funzioni. Per altre informazioni, vedere Configurazione snapshot in host.json.
- Per informazioni sulla risoluzione dei problemi di Snapshot Debugger, vedere Risoluzione dei problemi di Snapshot Debugger.