Включение 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
}
}
}
}
Следующие шаги
- Просмотрите моментальные снимки на портале Azure.
- Настройте конфигурацию отладчика моментальных снимков в зависимости от варианта использования приложения "Функции". Дополнительные сведения см. в разделе "Конфигурация моментального снимка" в host.json.
- Устранение неполадок с отладчиком моментальных снимков.