Activer le Débogueur de capture instantanée pour les applications .NET et .NET Core dans Azure Functions
Le débogueur de capture instantanée fonctionne actuellement pour les applications ASP.NET et ASP.NET Core s’exécutant sur Azure Functions sur des plans de service Windows.
Nous vous recommandons d'exécuter votre application au niveau de service de base ou supérieur lorsque vous utilisez le débogueur de capture instantanée.
Pour la plupart des applications, la mémoire disponible ou l’espace disque avec les niveaux de service Gratuit et Partagé est insuffisant pour enregistrer les captures instantanées.
Prérequis
Activer la surveillance Application Insights dans votre application Azure Functions
Activer le Débogueur de capture instantanée
Pour activer le débogueur de capture instantanée dans votre application Azure Functions, ajoutez la propriété snapshotConfiguration
à votre fichier host.json et redéployez votre fonction. Par exemple :
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": true
}
}
}
}
Le débogueur de capture instantanée est préinstallé dans le cadre du runtime Azure Functions et est désactivé par défaut. Dans la mesure où il est inclus dans le runtime, vous n’avez pas besoin d’ajouter d’autres packages NuGet ni de paramètres d’application.
Dans l’exemple simple d’application de fonction .NET Core qui suit, le débogueur de capture instantanée est activé sur .csproj
, {Your}Function.cs
et host.json
:
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
}
}
}
}
Activer le Débogueur de capture instantanée pour les autres clouds
Seules les régions Azure Government et Microsoft Azure géré par 21Vianet nécessitent actuellement des modifications de leurs points de terminaison.
L’exemple suivant présente host.json
mis à jour avec le point de terminaison de l’agent cloud US Government :
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
},
"snapshotConfiguration": {
"isEnabled": true,
"agentEndpoint": "https://snapshot.monitor.azure.us"
}
}
}
}
Voici les valeurs de remplacement du point de terminaison de l’agent débogueur de capture instantanée prises en charge :
Propriété | Cloud US Government | China Cloud |
---|---|---|
AgentEndpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
Désactiver le Débogueur de capture instantanée
Pour désactiver le débogueur de capture instantanée dans votre application Azure Functions, mettez à jour votre fichier host.json
en définissant la propriété snapshotConfiguration.isEnabled
sur false
.
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": false
}
}
}
}
Nous vous recommandons d’avoir le Débogueur de capture instantanée activé sur toutes vos applications afin de faciliter le diagnostic des exceptions d’application.
Étapes suivantes
- Générez du trafic vers votre application pouvant déclencher une exception. Attendez ensuite 10 à 15 minutes le temps que des captures instantanées soient envoyées à l’instance Application Insights.
- Afficher les captures instantanées dans le portail Azure.
- Personnalisez la configuration du débogueur de capture instantanée en fonction de votre cas d’usage sur votre application Azure Functions. Pour plus d’informations, consultez Configuration des captures instantanés dans host.json.
- Pour obtenir de l’aide sur la résolution des problèmes liés au débogueur de capture instantanée, consultez Résolution des problèmes liés au Débogueur de capture instantanée.