Azure İşlevleri'da .NET ve .NET Core uygulamaları için Snapshot Debugger'ı etkinleştirme

Snapshot Debugger şu anda Windows hizmet planlarında Azure İşlevleri üzerinde çalışan ASP.NET ve ASP.NET Core uygulamaları için çalışmaktadır.

Snapshot Debugger kullanırken uygulamanızı Temel hizmet katmanında veya daha üst bir katmanda çalıştırmanızı öneririz.

Çoğu uygulama için Ücretsiz ve Paylaşılan hizmet katmanlarında anlık görüntüleri kaydetmek için yeterli bellek veya disk alanı yoktur.

Önkoşul

İşlevler uygulamanızda Application Insights izlemeyi etkinleştirme

Anlık Görüntü Hata Ayıklayıcısını Etkinleştirme

İşlevler uygulamanızda Snapshot Debugger'ı etkinleştirmek için özelliğini host.json dosyanıza ekleyin snapshotConfiguration ve işlevinizi yeniden dağıtın. Örnek:

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

Snapshot Debugger, Azure İşlevleri çalışma zamanının bir parçası olarak önceden yüklenmiştir ve varsayılan olarak devre dışıdır. Çalışma zamanına dahil olduğundan ek NuGet paketleri veya uygulama ayarları eklemeniz gerekmez.

Aşağıdaki basit .NET Core İşlevi uygulaması örneğinde, .csproj, {Your}Function.csve host.json Snapshot Debugger'ın etkinleştirilmesini sağlayın:

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

Diğer bulutlar için Snapshot Debugger'i etkinleştirme

Şu anda uç nokta değişiklikleri gerektiren tek bölgeler Azure Kamu ve 21Vianet tarafından sağlanan Microsoft Azure'dır.

Aşağıdaki örnekte, ABD Kamu Bulutu aracı uç noktasıyla güncelleştirilmiş durum gösterilmektedir host.json :

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

Snapshot Debugger aracı uç noktasının desteklenen geçersiz kılmaları şunlardır:

Özellik ABD Kamu Bulutu Çin Bulutu
AgentEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Snapshot Debugger'ı devre dışı bırakma

İşlevler uygulamanızda Snapshot Debugger'ı devre dışı bırakmak için özelliğini falseolarak ayarlayarak dosyanızı host.json güncelleştirinsnapshotConfiguration.isEnabled.

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

Uygulama özel durumlarının tanılamasını kolaylaştırmak için tüm uygulamalarınızda Snapshot Debugger'ı etkinleştirmenizi öneririz.

Sonraki adımlar