Udostępnij za pośrednictwem


Włączanie debugera migawek dla aplikacji .NET i .NET Core w usłudze Azure Functions

Narzędzie Snapshot Debugger działa obecnie w przypadku aplikacji ASP.NET i ASP.NET Core działających w usłudze Azure Functions w planach usług systemu Windows.

Zalecamy uruchomienie aplikacji w warstwach usługi Podstawowa lub wyższej podczas korzystania z debugera migawek. W przypadku większości aplikacji:

  • Warstwy usługi Bezpłatna i Współdzielona nie mają wystarczającej ilości pamięci ani miejsca na dysku, aby zapisać migawki.
  • Warstwa Zużycie nie jest obecnie dostępna dla debugera migawek.

Debuger migawek jest wstępnie zainstalowany jako część środowiska uruchomieniowego usługi Azure Functions, dlatego nie trzeba dodawać dodatkowych pakietów NuGet ani ustawień aplikacji.

Warunek wstępny

Włącz monitorowanie usługi Application Insights w aplikacji usługi Functions.

Włączanie debugera migawek

Aby włączyć narzędzie Snapshot Debugger w aplikacji usługi Functions, dodaj snapshotConfiguration właściwość do pliku host.json i ponownie wdróż funkcję. Na przykład:

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

Generuj ruch do aplikacji, który może wyzwolić wyjątek. Następnie poczekaj od 10 do 15 minut, aż migawki zostaną wysłane do wystąpienia usługi Application Insights.

Możesz sprawdzić, czy debuger migawek został włączony, sprawdzając pliki aplikacji funkcji platformy .NET. Na przykład w następującej prostej aplikacji funkcji .NET element .csproj, {Your}Function.csi host.json aplikacji platformy .NET pokazują debuger migawek jako włączony:

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

Włączanie debugera migawek dla innych chmur

Obecnie jedynymi regionami, które wymagają modyfikacji punktów końcowych, są platforma Azure Government i platforma Microsoft Azure obsługiwana przez firmę 21Vianet.

W poniższym przykładzie pokazano zaktualizowany host.json punkt końcowy agenta chmury dla instytucji rządowych USA:

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

Oto obsługiwane przesłonięcia punktu końcowego agenta snapshot Debugger:

Właściwości Chmura dla instytucji rządowych USA Chmura w Chinach
agentEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Wyłączanie debugera migawek

Aby wyłączyć narzędzie Snapshot Debugger w aplikacji usługi Functions, zaktualizuj plik host.json , ustawiając snapshotConfiguration.isEnabled właściwość na false.

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

Następne kroki