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.
Lorsque vous utilisez le Débogueur de capture instantanée, nous vous recommandons d'exécuter votre application avec les niveaux de service De base ou supérieur. 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.
- Actuellement, le niveau Consommation n’est pas disponible pour le Débogueur de capture instantanée.
Le Débogueur de capture instantanée est préinstallé dans le cadre du runtime Azure Functions, donc vous n’avez pas besoin d’ajouter des packages NuGet ou des paramètres d’application supplémentaires.
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
}
}
}
}
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.
Vous pouvez vérifier que le Débogueur de capture instantanée a été activé en vérifiant vos fichiers d’application de fonction .NET. Par exemple, dans l’application de fonction .NET simple suivante, le .csproj
, le {Your}Function.cs
et le host.json
de votre application .NET montrent le Débogueur de capture instantanée comme étant activé :
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
}
}
}
}
Étapes suivantes
- 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.
- Résoudre les problèmes du Débogueur de capture instantanée.