Compartilhar via


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 o aplicativo na camada de serviço Básica ou superior ao usar Depurador de Instantâneos. Para a maioria dos aplicativos:

  • Para a maioria dos aplicativos, as camadas de serviço Gratuita e Compartilhada não têm memória ou espaço em disco suficiente para salvar instantâneos.
  • No momento, a camada de Consumo não está disponível para o Depurador de Instantâneos.

O Depurador de Instantâneos é pré-instalado como parte do runtime do Azure Functions, portanto, você não precisa adicionar pacotes NuGet extras ou configurações de aplicativo.

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
      }
    }
  }
}

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.

Você pode verificar se o Depurador de Instantâneos foi habilitado verificando os arquivos do aplicativo de funções do .NET. Por exemplo, no seguinte aplicativo de funções do .NET simples, o .csproj, {Your}Function.cs e host.json do aplicativo .NET mostram o Depurador de Instantâneos 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
      }
    }
  }
}

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
      }
    }
  }
}

Próximas etapas