Habilitación de Snapshot Debugger para aplicaciones .NET y .NET Core en Azure Functions
Actualmente, Snapshot Debugger puede usarse con aplicaciones ASP.NET y ASP.NET Core que se ejecutan en Azure Functions en planes de servicio de Windows.
Se recomienda ejecutar la aplicación en el nivel de servicio Básico o superior al usar Snapshot Debugger.
Para la mayoría de las aplicaciones, los niveles de servicio Gratuito y Compartido no tienen suficiente memoria ni espacio en disco para guardar las instantáneas.
Requisito previo
Habilitar la supervisión de Application Insights en la aplicación de funciones
Habilitación de Snapshot Debugger
Para habilitar Snapshot Debugger en la aplicación de funciones, agregue la propiedad snapshotConfiguration
al archivo host.json y vuelva a implementar la función. Por ejemplo:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": true
}
}
}
}
Snapshot Debugger está preinstalado como parte del runtime de Azure Functions y de forma predeterminada está deshabilitado. Puesto que se incluye en el entorno de ejecución, no es necesario agregar paquetes NuGet adicionales ni configuración de la aplicación.
En el ejemplo sencillo de la aplicación de funciones de .NET Core siguiente, .csproj
, {Your}Function.cs
y host.json
tienen Snapshot Debugger habilitado:
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
}
}
}
}
Habilitación de Snapshot Debugger para otras nubes
Actualmente, las únicas regiones que requieren modificaciones en el punto final son Azure Government y Microsoft Azure operado por 21Vianet.
El ejemplo siguiente muestra el archivo host.json
actualizado con el punto de conexión del agente en la nube del Gobierno de EE. UU.:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
},
"snapshotConfiguration": {
"isEnabled": true,
"agentEndpoint": "https://snapshot.monitor.azure.us"
}
}
}
}
Aquí se muestran las invalidaciones admitidas del punto de conexión del agente Snapshot Debugger:
Propiedad | Nube del Gobierno de EE. UU. | Nube de China |
---|---|---|
AgentEndpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
Deshabilitación de Snapshot Debugger
Para deshabilitar Snapshot Debugger en la aplicación de funciones, actualice el archivo host.json
estableciendo la propiedad snapshotConfiguration.isEnabled
en false
.
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": false
}
}
}
}
Recomendamos que tenga habilitado Snapshot Debugger en todas las aplicaciones para facilitar el diagnóstico de las excepciones de la aplicación.
Pasos siguientes
- Genere tráfico para la aplicación que pueda desencadenar una excepción. Luego, espere de 10 a 15 minutos para que se empiecen a enviar instantáneas a la instancia de Application Insights.
- Vea las instantáneas en Azure Portal.
- Personalice la configuración de Snapshot Debugger según su caso de uso en la aplicación de funciones. Para obtener más información, vea la configuración de instantáneas en host.json.
- Por ayuda para solucionar problemas de Snapshot Debugger, consulte la sección Solución de problemas de Snapshot Debugger.