Azure Işlevlerinde .NET ve .NET Core uygulamaları için Snapshot Debugger etkinleştirme

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

Snapshot Debugger kullanırken uygulamanızı temel hizmet katmanında veya daha yüksek bir sürüme ç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şullar

Snapshot Debugger etkinleştir

Farklı bir Azure hizmeti türü çalıştırıyorsanız, desteklenen diğer platformlarda Snapshot Debugger etkinleştirme talimatları aşağıda verilmiştir:

Işlev uygulamanızda Snapshot Debugger etkinleştirmek için, host.json özelliği snapshotConfiguration aşağıda tanımlanan şekilde ekleyerek ve işlevinizi yeniden dağıtarak dosyanızı güncelleştirmeniz gerekir.

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

Snapshot Debugger, varsayılan olarak devre dışı bırakılmış olan Azure Işlevleri çalışma zamanının bir parçası olarak önceden yüklenmiştir.

Snapshot Debugger Azure Işlevleri çalışma zamanına eklendiğinden, ek NuGet paketleri ve uygulama ayarları eklemek gerekmez.

Aynı şekilde, basit bir Işlev uygulaması (.NET Core) için, aşağıdaki .csproj {Your}Function.cs Snapshot Debugger,, ve üzerinde etkinleştirildikten sonra nasıl görünecektir host.json .

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

Function Sınıfı

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");
        }
    }
}

Ana bilgisayar dosyası

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

Diğer bulutlar için Snapshot Debugger etkinleştir

Şu anda yalnızca uç nokta değişiklikleri gerektiren bölgeler Azure Kamu ve Azure Çin' dir.

Aşağıda host.json ABD kamu bulut Aracısı uç noktası ile güncelleştirilmiş bir örneği verilmiştir:

{
  "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ı aşağıda verilmiştir:

Özellik ABD kamu bulutu Çin bulutu
Tendtendpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Snapshot Debugger devre dışı bırak

Işlev uygulamanızda Snapshot Debugger devre dışı bırakmak için, yalnızca host.json özelliğine ayarlayarak dosyanızı güncelleştirmeniz gerekir false snapshotConfiguration.isEnabled .

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

Uygulama özel durumlarının tanılamayı kolaylaştırmak için tüm uygulamalarınızda Snapshot Debugger etkinleştirilmiş olması önerilir.

Sonraki adımlar