Включение Snapshot Debugger для приложений с расширениями .NET и .NET Core в Функциях Azure
В настоящее время snapshot Debugger работает для ASP.NET и ASP.NET Core приложений, работающих на Функции Azure в планах обслуживания Windows.
При использовании Snapshot Debugger рекомендуется запускать приложение на уровне служб "Базовый" или выше.
Для большинства приложений на уровнях бесплатных и общих служб не хватает памяти или дискового пространства для сохранения снимков.
Предварительное требование
Включение мониторинга Application Insights в приложении "Функции"
Включение Snapshot Debugger
Чтобы включить Snapshot Debugger в приложении "Функции", добавьте свойство в snapshotConfiguration
файл host.json и повторно разверните функцию. Пример:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": true
}
}
}
}
Snapshot Debugger предварительно установлен как часть среды выполнения Функции Azure и отключен по умолчанию. Так как он включен в среду выполнения, вам не нужно добавлять дополнительные пакеты NuGet или параметры приложения.
В примере простого приложения-функции .NET Core, который приведен ниже, .csproj
, {Your}Function.cs
и host.json
включен отладчик моментальных снимков:
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"
}
}
}
}
Ниже приведены поддерживаемые переопределения конечной точки агента Snapshot Debugger:
Свойство | Облако для государственных организаций США | Облако для Китая |
---|---|---|
AgentEndpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
Отключение Snapshot Debugger
Чтобы отключить Snapshot Debugger в приложении Функций, обновите host.json
файл, задав snapshotConfiguration.isEnabled
для свойства значение false
.
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": false
}
}
}
}
С целью упростить диагностику исключений приложений рекомендуется включить Snapshot Debugger во всех ваших приложениях.
Дальнейшие действия
- Создайте для приложения трафик, который может вызвать исключение. Затем подождите 10–15 минут, пока моментальные снимки будут отправлены в экземпляр Application Insights.
- Просмотрите моментальные снимки на портале Azure.
- Настройте конфигурацию Snapshot Debugger в зависимости от варианта использования приложения "Функции". Дополнительные сведения см. в разделе Конфигурация моментального снимка в файле host.json.
- Для получения помощи по устранению неполадок отладчика снимков см. Устранение неполадок Snapshot Debugger.