Share via


Aktivera felsökningsprogram för ögonblicksbilder för .NET- och .NET Core-appar i Azure Functions

Snapshot Debugger fungerar för närvarande för ASP.NET och ASP.NET Core appar som körs på Azure Functions i Windows-tjänstplaner.

Vi rekommenderar att du kör ditt program på basic-tjänstnivån eller högre när du använder Snapshot Debugger.

För de flesta program har nivåerna Kostnadsfri och Delad tjänst inte tillräckligt med minne eller diskutrymme för att spara ögonblicksbilder.

Förutsättning

Aktivera Application Insights-övervakning i din Functions-app

Aktivera felsökningsprogram för ögonblicksbilder

Om du vill aktivera Snapshot Debugger i functions-appen lägger du till snapshotConfiguration egenskapen i filen host.json och distribuerar om funktionen. Exempel:

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

Felsökningsprogrammet för ögonblicksbilder är förinstallerat som en del av Azure Functions-körningen och är inaktiverat som standard. Eftersom den ingår i körningen behöver du inte lägga till extra NuGet-paket eller programinställningar.

I det enkla .NET Core-funktionsappexemplet som följer, .csproj, {Your}Function.csoch host.json har Snapshot Debugger aktiverat:

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

Aktivera felsökningsprogram för ögonblicksbilder för andra moln

För närvarande är de enda regioner som kräver slutpunktsändringar Azure Government och Microsoft Azure drivs av 21Vianet.

I följande exempel visas den host.json uppdaterade med US Government Cloud-agentens slutpunkt:

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

Här är de åsidosättningar som stöds av agentslutpunkten för ögonblicksbildsfelsökaren:

Egenskap US Government Cloud China Cloud
AgentEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Inaktivera felsökningsprogram för ögonblicksbilder

Om du vill inaktivera felsökningsprogrammet för ögonblicksbilder i Functions-appen uppdaterar du host.json filen genom att ange snapshotConfiguration.isEnabled egenskapen till false.

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

Vi rekommenderar att du har aktiverat Snapshot Debugger på alla dina appar för att underlätta diagnostiken av programfel.

Nästa steg

  • Generera trafik till ditt program som kan utlösa ett undantag. Vänta sedan 10 till 15 minuter innan ögonblicksbilder skickas till Application Insights-instansen.
  • Visa ögonblicksbilder i Azure Portal.
  • Anpassa konfigurationen av ögonblicksbildsfelsökaren baserat på ditt användningsfall i functions-appen. Mer information finns i Konfiguration av ögonblicksbilder i host.json.
  • Mer information om felsökning av problem med felsökning av ögonblicksbilder finns i Felsökning av ögonblicksbilder.