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 los niveles 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.
- El nivel Consumo no está disponible actualmente en Snapshot Debugger.
Snapshot Debugger está preinstalado como parte del entorno de ejecución de Azure Functions, por lo que no es necesario agregar paquetes NuGet ni configuraciones de aplicación adicionales.
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
}
}
}
}
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.
Puede comprobar que Snapshot Debugger se ha habilitado comprobando los archivos de la aplicación de funciones de .NET. Por ejemplo, en la siguiente aplicación de funciones sencilla de .NET, el .csproj
, {Your}Function.cs
y host.json
de la aplicación .NET muestran Snapshot Debugger como 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
}
}
}
}
Pasos siguientes
- 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.
- Solucionar problemas del depurador de instantáneas.