تمكين Snapshot Debugger لتطبيقات .NET و.NET Core في وظائف Azure
يعمل Snapshot Debugger حاليا مع تطبيقات ASP.NET ASP.NET Core التي تعمل على Azure Functions على خطط خدمة Windows.
نوصي بتشغيل التطبيق الخاص بك على مستوى الخدمة الأساسية أو أعلى عند استخدام Snapshot Debugger.
بالنسبة لمعظم التطبيقات، لا تحتوي طبقات الخدمة المجانية والمشتركة على ذاكرة أو مساحة قرص كافية لحفظ اللقطات.
المتطلب الأساسي
تمكين مراقبة Application Insights في تطبيق الوظائف
تمكين Snapshot Debugger
لتمكين Snapshot Debugger في تطبيق Functions، أضف الخاصية snapshotConfiguration
إلى ملف host.json وأعد توزيع الدالة. على سبيل المثال:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": true
}
}
}
}
تم تثبيت Snapshot Debugger مسبقا كجزء من وقت تشغيل Azure Functions ويتم تعطيله بشكل افتراضي. نظرا لأنه مضمن في وقت التشغيل، لا تحتاج إلى إضافة حزم NuGet إضافية أو إعدادات التطبيق.
في مثال تطبيق .NET Core Function البسيط الذي يلي و .csproj
{Your}Function.cs
و و host.json
تمكين Snapshot Debugger:
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 Governmentو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 في تطبيق Functions، قم بتحديث الملف الخاص بك host.json
عن طريق تعيين الخاصية snapshotConfiguration.isEnabled
إلى false
.
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": false
}
}
}
}
نوصيك بتمكين Snapshot Debugger على جميع تطبيقاتك لتسهيل تشخيص استثناءات التطبيقات.
الخطوات التالية
- إنشاء نسبة استخدام الشبكة إلى التطبيق الخاص بك التي يمكن أن تؤدي إلى استثناء. ثم انتظر من 10 إلى 15 دقيقة لإرسال اللقطات إلى مثيل Application Insights.
- اعرض اللقطات في مدخل Microsoft Azure.
- تخصيص تكوين Snapshot Debugger استنادا إلى حالة الاستخدام الخاصة بك على تطبيق Functions الخاص بك. لمزيد من المعلومات، راجع تكوين اللقطة في host.json.
- للحصول على مساعدة في استكشاف مشكلات Snapshot Debugger وإصلاحها، راجع تحري الخلل وإصلاحه في برنامج تصحيح الخلل في اللقطات.