Aktivieren des Momentaufnahmedebuggers für .NET- und .NET Core-Apps in Azure Functions
Der Momentaufnahmedebugger kann derzeit für ASP.NET- und ASP.NET Core-Apps verwendet werden, die unter Azure Functions in Windows-Dienstplänen ausgeführt werden.
Wenn Sie den Momentaufnahmedebugger verwenden, wird empfohlen, Ihre Anwendung auf der Dienstebene „Basic“ oder einer höheren auszuführen. Für die meisten Anwendungen gilt:
- Die Dienstebenen „Free“ und „Shared“ haben nicht genügend Arbeits- oder Festplattenspeicher zum Speichern von Momentaufnahmen.
- Die Verbrauchsebene ist derzeit für den Momentaufnahmedebugger nicht verfügbar.
Da der Momentaufnahmedebugger wird nicht in der Azure Functions-Runtime vorinstalliert wird, ist es nicht erforderlich, zusätzliche NuGet-Pakete oder Anwendungseinstellungen hinzuzufügen.
Voraussetzungen
Aktivieren der Application Insights-Überwachung in Ihrer Functions-App
Aktivieren des Momentaufnahmedebuggers
Um den Momentaufnahmedebugger in Ihrer Functions-App zu aktivieren, fügen Sie die snapshotConfiguration
-Eigenschaft zu Ihrer host.json-Datei hinzu und stellen Ihre Funktion erneut bereit. Zum Beispiel:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": true
}
}
}
}
Generieren Sie Datenverkehr für Ihre Anwendung, der eine Ausnahme auslösen kann. Warten Sie dann 10 bis 15 Minuten, bis die Momentaufnahmen an die Application Insights-Instanz gesendet werden.
Sie können überprüfen, ob der Momentaufnahmedebugger aktiviert wurde, indem Sie die Dateien Ihrer .NET-Funktions-App überprüfen. In der folgenden einfachen .NET-Funktions-App zeigen beispielsweise .csproj
, {Your}Function.cs
und host.json
für Ihre .NET-Anwendung den Momentaufnahmedebugger als aktiviert an:
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
}
}
}
}
Aktivieren des Momentaufnahmedebuggers für andere Clouds
Derzeit sind Azure Government und Microsoft Azure operated by 21Vianet die einzigen Regionen, für die Endpunktänderungen erforderlich sind.
Im Folgenden finden Sie ein Beispiel für die Datei host.json
, die mit dem Agent-Endpunkt der US Government-Cloud aktualisiert wurde:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
},
"snapshotConfiguration": {
"isEnabled": true,
"agentEndpoint": "https://snapshot.monitor.azure.us"
}
}
}
}
Im Folgenden finden Sie die unterstützten Überschreibungen des Agent-Endpunkts für den Momentaufnahmedebugger:
Eigenschaft | US Government-Cloud | China-Cloud |
---|---|---|
AgentEndpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
Deaktivieren des Momentaufnahmedebuggers
Zum Deaktivieren des Momentaufnahmedebuggers in Ihrer Functions-App aktualisieren Sie Ihre host.json
-Datei, indem Sie die snapshotConfiguration.isEnabled
-Eigenschaft auf false
festlegen.
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": false
}
}
}
}
Nächste Schritte
- Weitere Informationen finden Sie unter Momentaufnahmen anzeigen im Azure-Portal.
- Passen Sie die Konfiguration für den Momentaufnahmedebugger basierend auf Ihrem Anwendungsfall in Ihrer Functions-App an. Weitere Informationen finden Sie unter Momentaufnahmekonfiguration in host.json.
- Behandeln von Problemen mit dem Momentaufnahmedebugger.