Habilitar o Depurador de Instantâneos para aplicativos .NET e .NET Core no Azure Functions

Depurador de Instantâneos atualmente trabalha para aplicativos ASP.NET e ASP.NET Core que estão em execução no Azure Functions nos planos de serviço Windows.

Recomendamos que você execute seu aplicativo na camada de serviço Básico ou superior quando você usa o Depurador de Instantâneos.

Para a maioria dos aplicativos, as camadas de serviço gratuitas e compartilhadas não têm memória ou espaço em disco suficiente para salvar instantâneos.

Pré-requisito

Habilite o monitoramento de Application Insights no seu Aplicativo de funções

Habilitar o Depurador de Instantâneos

Para habilitar o Depurador de Instantâneos em seu Aplicativo de funções, adicione a propriedade snapshotConfiguration ao seu arquivo host.json e reimplante sua função. Por exemplo:

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "snapshotConfiguration": {
        "isEnabled": true
      }
    }
  }
}

O Depurador de Instantâneos é instalado previamente como parte do runtime do Azure Functions, que está desabilitado por padrão. Porque ele está incluído no runtime, você não precisa adicionar pacotes extras do NuGet nem configurações de aplicativo.

No exemplo seguinte de Aplicativo de funções simples do .NET, .csproj, {Your}Function.cse host.json tem o Depurador de Instantâneos 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
      }
    }
  }
}

Habilitar o Depurador de Instantâneos para outras nuvens

Atualmente, as únicas regiões que exigem modificações do ponto de extremidade são o Azure Governamental e o Microsoft Azure operado pela 21Vianet.

O seguinte exemplo mostra uma atualização host.json com o ponto de extremidade do Agente de nuvem do Governo dos EUA:

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingExcludedTypes": "Request",
      "samplingSettings": {
        "isEnabled": true
      },
      "snapshotConfiguration": {
        "isEnabled": true,
        "agentEndpoint": "https://snapshot.monitor.azure.us"
      }
    }
  }
}

Aqui estão as substituições com suporte do ponto de extremidade do agente Depurador de Instantâneos:

Propriedade Nuvem do governo dos EUA Nuvem da China
AgentEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Desabilitar o Depurador de Instantâneos

Para desabilitar o Depurador de Instantâneos em seu Aplicativo de funções, atualize seu arquivo host.json definindo a propriedade snapshotConfiguration.isEnabled para false.

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "snapshotConfiguration": {
        "isEnabled": false
      }
    }
  }
}

Recomendamos que o Depurador de Instantâneos esteja habilitado em todos os aplicativos para facilitar o diagnóstico de exceções de aplicativo.

Próximas etapas

  • Gere o tráfego para o aplicativo que pode disparar uma exceção. Depois espere de 10 a 15 minutos para que os instantâneos comecem a ser enviados à instância do Application Insights.
  • Exiba instantâneos no portal do Azure.
  • Personalize a configuração de Depurador de Instantâneos baseada no seu caso de uso em seu Aplicativo de funções. Para obter mais informações, consulte Configuração de instantâneo no host.json.
  • Para obter ajuda com a solução de problemas de Depurador de Instantâneos, confira solução de problemas do Depurador de Instantâneos.