Поделиться через


Включение Snapshot Debugger для приложений с расширениями .NET и .NET Core в Функциях Azure

Отладчик моментальных снимков в настоящее время работает для ASP.NET и приложений ASP.NET Core, работающих на Функции Azure в планах служб Windows.

При использовании отладчика моментальных снимков рекомендуется запустить приложение на уровнях служб "Базовый" или выше. Для большинства приложений:

  • Уровни бесплатных и общих служб не имеют достаточного объема памяти или дискового пространства для сохранения моментальных снимков.
  • Уровень потребления в настоящее время недоступен для отладчика моментальных снимков.

Отладчик моментальных снимков предварительно установлен в рамках среды выполнения Функции Azure, поэтому вам не нужно добавлять дополнительные пакеты NuGet или параметры приложения.

Предварительные требования

Включите мониторинг Application Insights в приложении "Функции".

Включение Snapshot Debugger

Чтобы включить отладчик моментальных снимков в приложении "Функции", добавьте snapshotConfiguration свойство в файл host.json и повторно разверните функцию. Например:

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

Создайте трафик для вашего приложения, который может вызвать исключение. Затем подождите 10–15 минут, пока моментальные снимки будут отправлены в экземпляр Application Insights.

Вы можете убедиться, что отладчик моментальных снимков включен, проверив файлы приложения-функции .NET. Например, в следующем простом приложении-функции .NET, а .csproj{Your}Function.csтакже host.json в приложении .NET отображается отладчик моментальных снимков, как включено:

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

Включение Snapshot Debugger для других облаков

В настоящее время единственными регионами, для которых требуются изменения конечных точек, являются Azure для государственных организаций и Microsoft Azure, управляемые 21Vianet.

В следующем примере показана обновленная конечная host.json точка агента облака для государственных организаций США:

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

Ниже приведены поддерживаемые переопределения конечной точки агента отладчика моментальных снимков:

Свойство Облако для государственных организаций США облако для Китая.
agentEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Отключение Snapshot Debugger

Чтобы отключить отладчик моментальных снимков в приложении "Функции", обновите файл host.json , задав snapshotConfiguration.isEnabled для свойства значение false.

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

Следующие шаги