Partage via


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.cset 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