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:
- Azure App Service
- Azure Cloud Services
- Azure Service Fabric Hizmetleri
- Azure sanal makineleri ve sanal makine ölçek kümeleri
- Şirket içi sanal veya fiziksel makineler
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
- Uygulamanıza bir özel durum tetikleyebilmesi için trafik oluşturun. Ardından, anlık görüntülerin Application Insights örneğine gönderilmesi için 10 ila 15 dakika bekleyin.
- Azure portal anlık görüntüleri görüntüleyin .
- Işlev uygulamanızda kullanım örneğine göre Snapshot Debugger yapılandırmayı özelleştirin. Daha fazla bilgi için bkz. host.jsüzerinde anlık görüntü yapılandırması.
- Sorunları giderme Snapshot Debugger konusunda yardım için bkz. Snapshot Debugger sorun giderme.