Surveiller l’exécution des fonctions AzureMonitor Azure Functions

Azure Functions est intégré à Azure Application Insights pour surveiller des fonctions.Azure Functions offers built-in integration with Azure Application Insights to monitor functions. Cet article vous explique comment configurer Azure Functions de façon à envoyer des fichiers journaux générés par le système à Application Insights.This article shows you how to configure Azure Functions to send system-generated log files to Application Insights.

Nous vous recommandons d’utiliser Application Insights, car il collecte les données liées aux journaux, performances et erreurs.We recommend using Application Insights because it collects log, performance, and error data. Il détecte automatiquement les anomalies de performances et intègre de puissants outils d’analyse conçus pour aider à diagnostiquer les problèmes et à comprendre la manière dont vos fonctions sont utilisées.It automatically detects performance anomalies and includes powerful analytics tools to help you diagnose issues and to understand how your functions are used. Il a été conçu pour vous permettre d’améliorer continuellement les performances et la convivialité.It's designed to help you continuously improve performance and usability. Vous pouvez également utiliser Application Insights lors du développement d'un projet d'application de fonction local.You can even use Application Insights during local function app project development. Pour plus d’informations, consultez Présentation d’Application Insights.For more information, see What is Application Insights?.

L’instrumentation Application Insights requise étant intégrée à Azure Functions, une clé d'instrumentation valide permet de connecter votre application de fonction à une ressource Application Insights.As the required Application Insights instrumentation is built into Azure Functions, all you need is a valid instrumentation key to connect your function app to an Application Insights resource.

Tarification et limites d’Application InsightsApplication Insights pricing and limits

Vous pouvez essayer gratuitement l’intégration d’Application Insights avec les applications de fonctions.You can try out Application Insights integration with Function Apps for free. La quantité de données pouvant être traitée quotidiennement à titre gratuit est limitée.There's a daily limit to how much data can be processed for free. Il est possible que cette limite soit atteinte lors du test.You might hit this limit during testing. Azure envoie des notifications sur le portail et par e-mail lorsque la limite quotidienne est proche.Azure provides portal and email notifications when you're approaching your daily limit. Si vous manquez ces alertes et atteignez la limite fixée, les nouveaux journaux d’activité n’apparaîtront pas dans les requêtes Application Insights.If you miss those alerts and hit the limit, new logs won't appear in Application Insights queries. N’oubliez pas ces limites pour éviter de passer du temps à résoudre des problèmes superflus.Be aware of the limit to avoid unnecessary troubleshooting time. Pour plus d’informations, consultez l’article Gérer la tarification et le volume de données dans Application Insights.For more information, see Manage pricing and data volume in Application Insights.

La liste complète des fonctionnalités Application Insights disponibles pour votre application de fonction est détaillée dans Fonctionnalités Application Insights prises en charge pour Azure Functions.The full list of Application Insights features available to your function app is detailed in Application Insights for Azure Functions supported features.

Activer l’intégration à Application InsightsEnable Application Insights integration

Pour qu’une application de fonction envoie des données à Application Insights, elle a besoin de connaître la clé d’instrumentation d’une ressource Application Insights.For a function app to send data to Application Insights, it needs to know the instrumentation key of an Application Insights resource. Cette clé doit se trouver dans un paramètre d’application nommé APPINSIGHTS_INSTRUMENTATIONKEY.The key must be in an app setting named APPINSIGHTS_INSTRUMENTATIONKEY.

Nouvelle application de fonction dans le portailNew function app in the portal

Lorsque vous créez votre application de fonction dans le portail Azure, l'intégration d’Application Insights est activée par défaut.When you create your function app in the Azure portal, Application Insights integration is enabled by default. La ressource Application Insights, qui porte le même nom que votre application de fonction est créée dans la même région ou dans la région la plus proche.The Application Insights resource has the same name as your function app, and it's created either in the same region or in the nearest region.

Pour examiner la ressource Application Insights en cours de création, sélectionnez-la de manière à développer la fenêtre Application Insights.To review the Application Insights resource being created, select it to expand the Application Insights window. Vous pouvez modifier le Nouveau nom de ressource ou choisir un autre Emplacement dans une Zone géographique Azure où vous souhaitez stocker vos données.You can change the New resource name or choose a different Location in an Azure geography where you want to store your data.

Activer Application Insights pendant la création d’une application de fonction

Lorsque vous sélectionnez Créer, une ressource Application Insights est créée avec votre application de fonction, et APPINSIGHTS_INSTRUMENTATIONKEY est défini dans les paramètres de l’application.When you choose Create, an Application Insights resource is created with your function app, which has the APPINSIGHTS_INSTRUMENTATIONKEY set in application settings. Tout est prêt.Everything is ready to go.

Ajouter à une application de fonction existanteAdd to an existing function app

Lorsque vous créez une application de fonction en utilisant Azure CLI, Visual Studio ou Visual Studio Code, vous devez créer la ressource Application Insights.When you create a function app using the Azure CLI, Visual Studio, or Visual Studio Code, you must create the Application Insights resource. Vous pouvez ensuite ajouter la clé d’instrumentation de cette ressource en tant que paramètre d’application dans votre application de fonction.You can then add the instrumentation key from that resource as an application setting in your function app.

La solution Azure Functions facilite l’ajout de l’intégration d’Application Insights à une application de fonction à partir du portail Azure.Functions makes it easy to add Application Insights integration to a function app from the Azure portal.

  1. Dans le portail, sélectionnez Tous les services > Applications de fonction, sélectionnez votre application de fonction, puis choisissez la bannière Application Insights en haut de la fenêtre.In the portal, select All services > Function Apps, select your function app, and then select the Application Insights banner at the top of the window

    Activer Application Insights à partir du portail

  2. Créez une ressource Application Insights en utilisant les paramètres spécifiés dans le tableau sous l’image.Create an Application Insights resource by using the settings specified in the table below the image.

    Création d’une ressource Application Insights dans Azure

    ParamètreSetting Valeur suggéréeSuggested value DescriptionDescription
    NomName Nom d’application uniqueUnique app name Il est plus facile d’utiliser le même nom que celui de votre application de fonction, qui doit être unique dans votre abonnement.It's easiest to use the same name as your function app, which must be unique in your subscription.
    LieuLocation Europe OuestWest Europe Si possible, utilisez la même région que celle de votre application de fonction ou une région proche.If possible, use the same region as your function app, or one that's close to that region.
  3. Sélectionnez OK.Select OK. La ressource Application Insights est créée dans le même groupe de ressources et le même abonnement que votre application de fonction.The Application Insights resource is created in the same resource group and subscription as your function app. Une fois la ressource créée, fermez la fenêtre Application Insights.After the resource is created, close the Application Insights window.

  4. Dans votre application de fonction, sélectionnez Paramètres de l’application, puis faites défiler jusqu’à Paramètres de l’application.Back in your function app, select Application settings, and then scroll down to Application settings. Si vous voyez un paramètre nommé APPINSIGHTS_INSTRUMENTATIONKEY, cela signifie que l’intégration d’Application Insights est activée pour votre application de fonction s’exécutant dans Azure.If you see a setting named APPINSIGHTS_INSTRUMENTATIONKEY, Application Insights integration is enabled for your function app running in Azure.

Les premières versions de Functions utilisaient la surveillance intégrée, ce qui n’est plus recommandé.Early versions of Functions used built-in monitoring, which is no longer recommended. Lorsque vous activez l’intégration d’Application Insights pour un telle application de fonction, vous devez également désactiver la journalisation intégrée.When enabling Application Insights integration for such a function app, you must also disable built-in logging.

Affichage des données de télémétrie dans l’onglet SurveillerView telemetry in Monitor tab

Une fois l'intégration d’Application Insights activée, vous pouvez afficher des données de télémétrie dans l'onglet Surveiller.With Application Insights integration enabled, you can view telemetry data in the Monitor tab.

  1. Dans la page d’application de fonction, sélectionnez une fonction exécutée au moins une fois après la configuration d’Application Insights.In the function app page, select a function that has run at least once after Application Insights was configured. Sélectionnez ensuite l'onglet Surveiller.Then select the Monitor tab.

    Sélectionner l’onglet Surveiller

  2. Sélectionnez Actualiser régulièrement jusqu’à ce que la liste d’appels de fonction s’affiche.Select Refresh periodically, until the list of function invocations appears.

    Cette opération peut prendre jusqu’à cinq minutes, le temps que le client de télémétrie organise les données par lots pour les transmettre au serveur.It can take up to five minutes for the list to appear while the telemetry client batches data for transmission to the server. (Ce délai ne s’applique pas au Flux de métriques temps réel.(The delay doesn't apply to the Live Metrics Stream. Le service se connecte à l’hôte Functions lorsque vous chargez la page, de sorte que les journaux d’activité sont transmis directement sur la page.)That service connects to the Functions host when you load the page, so logs are streamed directly to the page.)

    Liste d’appels

  3. Pour afficher les journaux d’activité liés à un appel de fonction spécifique, sélectionnez le lien de la colonne Date correspondant à cet appel.To see the logs for a particular function invocation, select the Date column link for that invocation.

    Lien des détails d’appel

    La sortie de journalisation pour cet appel s’affiche dans une nouvelle page.The logging output for that invocation appears in a new page.

    Détails des appels

Comme vous pouvez le constater, les deux pages affichent un lien Exécuter dans Application Insights vers la requête Application Insights Analytics qui récupère les données.You can see that both pages have a Run in Application Insights link to the Application Insights Analytics query that retrieves the data.

Exécuter dans Application Insights

La requête suivante s’affiche.The following query is displayed. Vous pouvez voir que les résultats de la requête sont limités aux 30 derniers jours (where timestamp > ago(30d)).You can see that the query results are limited to the last 30 days (where timestamp > ago(30d)). De plus, les résultats ne montrent pas plus de 20 lignes (take 20).In addition, the results show no more than 20 rows (take 20). Par contre, la liste des détails des appels pour votre fonction porte sur les 30 derniers jours, sans limite.In contrast, the invocation details list for your function is for the last 30 days with no limit.

Liste d’appels Application Insights Analytics

Pour plus d’informations, consultez la section Interroger les données de télémétrie dans la suite de cet article.For more information, see Query telemetry data later in this article.

Afficher les données de télémétrie dans Application InsightsView telemetry in Application Insights

Pour ouvrir Application Insights à partir d’une application de fonction dans le portail Azure, accédez à la page Vue d’ensemble de l'application de fonction.To open Application Insights from a function app in the Azure portal, go to the function app's Overview page. Sous Fonctionnalités configurées, sélectionnez Application Insights.Under Configured features, select Application Insights.

Ouvrir Application Insights à partir de la page Vue d'ensemble de l'application de fonction

Pour plus d’informations sur l’utilisation d’Application Insights, consultez la documentation d’Application Insights.For information about how to use Application Insights, see the Application Insights documentation. Cette section présente des exemples montrant comment afficher les données dans Application Insights.This section shows some examples of how to view data in Application Insights. Si vous êtes déjà familiarisé avec Application Insights, vous pouvez passer directement aux sections sur la configuration et la personnalisation des données de télémétrie.If you're already familiar with Application Insights, you can go directly to the sections about how to configure and customize the telemetry data.

Onglet Vue d'ensemble d’Application Insights

Les domaines d’Application Insights suivants peuvent s'avérer utiles lors de l'évaluation du comportement, du niveau de performance et des erreurs de vos fonctions :The following areas of Application Insights can be helpful when evaluating the behavior, performance, and errors in your functions:

OngletTab DescriptionDescription
ÉchecsFailures Créez des graphiques et des alertes basés sur les échecs de fonction et les exceptions de serveur.Create charts and alerts based on function failures and server exceptions. Le Nom de l’opération est le nom de la fonction.The Operation Name is the function name. Les échecs de dépendances ne sont pas affichés, sauf si vous implémentez des données de télémétrie personnalisées pour les dépendances.Failures in dependencies aren't shown unless you implement custom telemetry for dependencies.
Niveau de performancePerformance Analysez les problèmes liés au niveau de performance.Analyze performance issues.
ServeursServers Affichez l’utilisation des ressources et le débit par serveur.View resource utilization and throughput per server. Ces données peuvent être utiles pour déboguer les scénarios où les fonctions ralentissent vos ressources sous-jacentes.This data can be useful for debugging scenarios where functions are bogging down your underlying resources. Les serveurs sont appelés instances de rôle cloud.Servers are referred to as Cloud role instances.
MétriquesMetrics Créez des graphiques et des alertes basés sur des métriques.Create charts and alerts that are based on metrics. Les métriques incluent le nombre d’appels de fonction, le délai d’exécution ainsi que les taux de réussite.Metrics include the number of function invocations, execution time, and success rates.
Live Metrics StreamLive Metrics Stream Visualisez les données des métriques au fil de leur création en quasi temps réel.View metrics data as it's created in near real-time.

Interroger les données de télémétrieQuery telemetry data

Application Insights Analytics vous donne accès à toutes les données de télémétrie sous forme de tables de base de données.Application Insights Analytics gives you access to all telemetry data in the form of tables in a database. Analytics fournit un langage de requête pour l’extraction, la manipulation et la visualisation des données.Analytics provides a query language for extracting, manipulating, and visualizing the data.

Sélectionner Analytics

Exemple Analytics

Voici un exemple de requête qui montre la distribution des demandes par nœud Worker au cours des 30 dernières minutes.Here's a query example that shows the distribution of requests per worker over the last 30 minutes.

requests
| where timestamp > ago(30m) 
| summarize count() by cloud_RoleInstance, bin(timestamp, 1m)
| render timechart

Les tables disponibles sont affichées sous l’onglet Schéma situé à gauche.The tables that are available are shown in the Schema tab on the left. Les données générées par les appels de fonction sont disponibles dans les tables suivantes :You can find data generated by function invocations in the following tables:

Table de charge de travailTable DescriptionDescription
tracestraces Journaux d’activité créés par le runtime et le code de fonction.Logs created by the runtime and by function code.
requestsrequests Une demande par appel de fonction.One request for each function invocation.
exceptionsexceptions Toutes les exceptions levées par le runtime.Any exceptions thrown by the runtime.
customMetricscustomMetrics Nombre d’appels ayant réussi ou échoué, taux de réussite, durée.The count of successful and failing invocations, success rate, and duration.
customEventscustomEvents Événements suivis par le runtime, par exemple : requêtes HTTP qui déclenchent une fonction.Events tracked by the runtime, for example: HTTP requests that trigger a function.
performanceCountersperformanceCounters Informations sur le niveau de performance des serveurs sur lesquels les fonctions sont en cours d’exécution.Information about the performance of the servers that the functions are running on.

Les autres tables concernent les tests de disponibilité et les données de télémétrie client et navigateur.The other tables are for availability tests, and client and browser telemetry. Vous pouvez implémenter une télémétrie personnalisée en vue d’y ajouter des données.You can implement custom telemetry to add data to them.

Dans chaque table, un champ customDimensions contient certaines des données spécifiques à Azure Functions.Within each table, some of the Functions-specific data is in a customDimensions field. Par exemple, la requête suivante récupère toutes les traces dont le niveau de journal est Error.For example, the following query retrieves all traces that have log level Error.

traces 
| where customDimensions.LogLevel == "Error"

Le runtime fournit les champs customDimensions.LogLevel et customDimensions.Category.The runtime provides the customDimensions.LogLevel and customDimensions.Category fields. Vous pouvez fournir des champs supplémentaires dans les journaux d’activité que vous écrivez dans votre code de fonction.You can provide additional fields in logs that you write in your function code. Consultez Journalisation structurée plus loin dans cet article.See Structured logging later in this article.

Configurer les catégories et les niveaux de journalConfigure categories and log levels

Vous pouvez utiliser Application Insights sans en personnaliser la configuration.You can use Application Insights without any custom configuration. La configuration par défaut risque d’engendrer d'importants volumes de données.The default configuration can result in high volumes of data. Si vous utilisez un abonnement Azure Visual Studio, vous risquez d’atteindre votre plafond de données pour Application Insights.If you're using a Visual Studio Azure subscription, you might hit your data cap for Application Insights. Plus loin dans cet article, vous découvrirez comment configurer et personnaliser les données que vos fonctions envoient à Application Insights.Later in this article, you learn how to configure and customize the data that your functions send to Application Insights. La journalisation d'une application de fonction est configurée dans le fichier host.json.For a function app, logging is configured in the host.json file.

CatégoriesCategories

L’enregistreur d’événements d’Azure Functions inclut une catégorie par journal.The Azure Functions logger includes a category for every log. La catégorie indique quelle partie du code d’exécution ou de votre code de fonction a écrit le journal.The category indicates which part of the runtime code or your function code wrote the log.

Les journaux d’activité créés par le runtime d’Azure Functions avec une catégorie qui commence par « Host ».The Functions runtime creates logs with a category that begin with "Host." Dans la version 1.x, les journaux d’activité function started, function executed et function completed ont la catégorie Host.Executor.In version 1.x, the function started, function executed, and function completed logs have the category Host.Executor. À partir de la version 2.x, ils ont la catégorie Function.<YOUR_FUNCTION_NAME>.Starting in version 2.x, these logs have the category Function.<YOUR_FUNCTION_NAME>.

Si vous écrivez des journaux d’activité dans votre code de fonction, la catégorie est Function dans la version 1.x du runtime d’Azure Functions.If you write logs in your function code, the category is Function in version 1.x of the Functions runtime. Dans la version 2.x, la catégorie est Function.<YOUR_FUNCTION_NAME>.User.In version 2.x, the category is Function.<YOUR_FUNCTION_NAME>.User.

Niveaux de journalLog levels

L’enregistreur d’événements d’Azure Functions inclut également un niveau de journal avec chaque journal.The Azure Functions logger also includes a log level with every log. LogLevel est une énumération, et le code d’entier indique l’importance relative :LogLevel is an enumeration, and the integer code indicates relative importance:

LogLevelLogLevel CodeCode
TraceTrace 00
DébogageDebug 11
InformationInformation 22
AvertissementWarning 33
ErrorError 44
CritiqueCritical 55
NoneNone 66

Le niveau de journal None est expliqué dans la section suivante.Log level None is explained in the next section.

Configuration du journal dans host.jsonLog configuration in host.json

Le fichier host.json configure la quantité de journalisation qu’une application de fonction envoie à Application Insights.The host.json file configures how much logging a function app sends to Application Insights. Pour chaque catégorie, vous indiquez le niveau de journal minimal à envoyer.For each category, you indicate the minimum log level to send. Il existe deux exemples : le premier exemple cible la version 2.x et ultérieure du runtime Functions (avec .NET Core) et le second exemple concerne le runtime version 1.x.There are two examples: the first example targets version 2.x and later of the Functions runtime (with .NET Core), and the second example is for the version 1.x runtime.

Versions 2.x et ultérieuresVersion 2.x and higher

La version 2.x et les versions ultérieures du runtime Functions utilisent la hiérarchie du filtre de journalisation de .NET Core.Version v2.x and later versions of the Functions runtime use the .NET Core logging filter hierarchy.

{
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "default": "Information",
      "Host.Results": "Error",
      "Function": "Error",
      "Host.Aggregator": "Trace"
    }
  }
}

Version 1.xVersion 1.x

{
  "logger": {
    "categoryFilter": {
      "defaultLevel": "Information",
      "categoryLevels": {
        "Host.Results": "Error",
        "Function": "Error",
        "Host.Aggregator": "Trace"
      }
    }
  }
}

Cet exemple montre comment configurer les règles suivantes :This example sets up the following rules:

  • En ce qui concerne les journaux d’activité de la catégorie Host.Results ou Function, envoyer uniquement les niveaux Error et supérieurs à Application Insights.For logs with category Host.Results or Function, send only Error level and above to Application Insights. Les journaux d’activité pour les niveaux Warning et inférieurs sont ignorés.Logs for Warning level and below are ignored.
  • En ce qui concerne les journaux d’activité de la catégorie Host.Aggregator, envoyer tous les journaux d’activité à Application Insights.For logs with category Host.Aggregator, send all logs to Application Insights. Le niveau du journal Trace est identique à ce que certains enregistreurs d’événements appellent Verbose, mais utilisez Trace dans le fichier host.json.The Trace log level is the same as what some loggers call Verbose, but use Trace in the host.json file.
  • Pour tous les autres journaux d’activité, envoyer uniquement les niveaux Information et supérieurs à Application Insights.For all other logs, send only Information level and above to Application Insights.

La valeur de catégorie dans host.json contrôle la journalisation de toutes les catégories qui commencent par la même valeur.The category value in host.json controls logging for all categories that begin with the same value. Host dans host.json contrôle la journalisation de Host.General, Host.Executor, Host.Results, etc.Host in host.json controls logging for Host.General, Host.Executor, Host.Results, and so on.

Si host.json inclut plusieurs catégories qui commencent par la même chaîne, les plus longues sont traitées en priorité.If host.json includes multiple categories that start with the same string, the longer ones are matched first. Supposons que vous souhaitiez que la totalité du runtime à l’exception de Host.Aggregator soit journalisée au niveau Error, mais que Host.Aggregator soit journalisé au niveau Information :Suppose you want everything from the runtime except Host.Aggregator to log at Error level, but you want Host.Aggregator to log at the Information level:

Version 2.x et ultérieureVersion 2.x and later

{
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "default": "Information",
      "Host": "Error",
      "Function": "Error",
      "Host.Aggregator": "Information"
    }
  }
}

Version 1.xVersion 1.x

{
  "logger": {
    "categoryFilter": {
      "defaultLevel": "Information",
      "categoryLevels": {
        "Host": "Error",
        "Function": "Error",
        "Host.Aggregator": "Information"
      }
    }
  }
}

Pour supprimer tous les journaux d’activité relatifs à une catégorie, vous pouvez utiliser le niveau de journal None.To suppress all logs for a category, you can use log level None. Aucun journal d’activité n’est écrit avec cette catégorie, et il n’existe aucun niveau de journal d’activité au-dessus de celle-ci.No logs are written with that category and there's no log level above it.

Les sections suivantes décrivent les principales catégories de journaux d’activité générées par le runtime.The following sections describe the main categories of logs that the runtime creates.

Catégorie Host.ResultsCategory Host.Results

Ces journaux d’activité apparaissent sous la dénomination « requests » dans Application Insights.These logs show as "requests" in Application Insights. Ils indiquent la réussite ou l’échec d’une fonction.They indicate success or failure of a function.

Graphique de demandes

Tous ces journaux sont écrits au niveau Information.All of these logs are written at Information level. Si vous filtrez sur le niveau Warning ou supérieur, vous ne pouvez pas visualiser ces données.If you filter at Warning or above, you won't see any of this data.

Catégorie Host.AggregatorCategory Host.Aggregator

Ces journaux d’activité fournissent des nombres et des moyennes d’appels de fonction sur une période de temps configurable.These logs provide counts and averages of function invocations over a configurable period of time. La période par défaut est 30 secondes ou 1 000 résultats, selon la première de ces éventualités.The default period is 30 seconds or 1,000 results, whichever comes first.

Les journaux d’activité sont disponibles dans la table customMetrics dans Application Insights.The logs are available in the customMetrics table in Application Insights. Le nombre d’exécutions, le taux de réussite et la durée en sont des exemples.Examples are the number of runs, success rate, and duration.

Requête portant sur customMetrics

Tous ces journaux sont écrits au niveau Information.All of these logs are written at Information level. Si vous filtrez sur le niveau Warning ou supérieur, vous ne pouvez pas visualiser ces données.If you filter at Warning or above, you won't see any of this data.

Autres catégoriesOther categories

Tous les journaux d’activité des catégories autres que celles déjà mentionnées apparaissent dans la table traces dans Application Insights.All logs for categories other than the ones already listed are available in the traces table in Application Insights.

Requête portant sur traces

Tous les journaux d’activité ayant des catégories commençant par Host sont écrits par le runtime d’Azure Functions.All logs with categories that begin with Host are written by the Functions runtime. Les journaux d’activité « Function started » et « Function completed » ont la catégorie Host.Executor.The "Function started" and "Function completed" logs have category Host.Executor. Pour les exécutions ayant réussi, ces journaux d’activité sont de niveau Information.For successful runs, these logs are Information level. Les exceptions sont journalisées au niveau Error.Exceptions are logged at Error level. En outre, le runtime crée des journaux d’activité de niveau Warning, par exemple, les messages de file d’attente envoyés à la file d’attente de messages incohérents.The runtime also creates Warning level logs, for example: queue messages sent to the poison queue.

Les journaux d’activité écrits par votre code de fonction ont la catégorie Function et peuvent avoir n’importe quel niveau de journal d’activité.Logs written by your function code have category Function and can be any log level.

Configurer le paramètre d’agrégationConfigure the aggregator

Comme indiqué dans la section précédente, le runtime agrège les données sur les exécutions de fonction sur une période de temps.As noted in the previous section, the runtime aggregates data about function executions over a period of time. La période par défaut est 30 secondes ou 1 000 exécutions, selon la première de ces éventualités.The default period is 30 seconds or 1,000 runs, whichever comes first. Vous pouvez configurer ce paramètre dans le fichier host.json.You can configure this setting in the host.json file. Voici un exemple :Here's an example:

{
    "aggregator": {
      "batchSize": 1000,
      "flushTimeout": "00:00:30"
    }
}

Configurer l’échantillonnageConfigure sampling

Application Insights présente une fonctionnalité d’échantillonnage qui peut vous éviter de produire une quantité excessive de données de télémétrie portant sur les exécutions terminées aux heures de forte activité.Application Insights has a sampling feature that can protect you from producing too much telemetry data on completed executions at times of peak load. Lorsque le taux d'exécutions entrantes dépasse un seuil spécifié, Application Insights commence à ignorer de manière aléatoire certaines exécutions entrantes.When the rate of incoming executions exceeds a specified threshold, Application Insights starts to randomly ignore some of the incoming executions. Par défaut, le nombre maximal d’exécutions par seconde est fixé à 20 (cinq dans la version 1.x).The default setting for maximum number of executions per second is 20 (five in version 1.x). Vous pouvez configurer l’échantillonnage dans host.json.You can configure sampling in host.json. Voici un exemple :Here's an example:

Version 2.x et ultérieureVersion 2.x and later

{
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "maxTelemetryItemsPerSecond" : 20
      }
    }
  }
}

Version 1.xVersion 1.x

{
  "applicationInsights": {
    "sampling": {
      "isEnabled": true,
      "maxTelemetryItemsPerSecond" : 5
    }
  }
}

Notes

L’échantillonnage est activé par défaut.Sampling is enabled by default. Si vous pensez qu’il vous manque des données, il vous faut peut-être simplement adapter les paramètres d’échantillonnage à votre scénario de surveillance.If you appear to be missing data, you might need to adjust the sampling settings to fit your particular monitoring scenario.

Écrire des journaux d’activité dans des fonctions C#Write logs in C# functions

Vous pouvez écrire des journaux d’activité dans votre code de fonction qui apparaissent sous forme de traces dans Application Insights.You can write logs in your function code that appear as traces in Application Insights.

ILoggerILogger

Utilisez un paramètre ILogger dans vos fonctions au lieu d’un paramètre TraceWriter.Use an ILogger parameter in your functions instead of a TraceWriter parameter. Les journaux d’activité créés à l’aide de TraceWriter sont destinés à Application Insights, mais ILogger vous permet d’effectuer une journalisation structurée.Logs created by using TraceWriter go to Application Insights, but ILogger lets you do structured logging.

Avec un objet ILogger, vous appelez des méthodes d’extension Log<level> sur ILogger pour créer des journaux.With an ILogger object, you call Log<level> extension methods on ILogger to create logs. Le code suivant écrit des journaux Information avec la catégorie « Function.<NOM_DE_VOTRE_FONCTION>.User ».The following code writes Information logs with category "Function.<YOUR_FUNCTION_NAME>.User."

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, ILogger logger)
{
    logger.LogInformation("Request for item with key={itemKey}.", id);

Journalisation structuréeStructured logging

C’est l’ordre des espaces réservés, pas leurs noms, qui détermine les paramètres utilisés dans le message du journal.The order of placeholders, not their names, determines which parameters are used in the log message. Supposons que vous disposiez du code suivant :Suppose you have the following code:

string partitionKey = "partitionKey";
string rowKey = "rowKey";
logger.LogInformation("partitionKey={partitionKey}, rowKey={rowKey}", partitionKey, rowKey);

Si vous conservez la même chaîne de message et que vous inversez l’ordre des paramètres, les valeurs dans le texte du message résultant ne sont pas situées à la bonne place.If you keep the same message string and reverse the order of the parameters, the resulting message text would have the values in the wrong places.

Ce mode de gestion des espaces réservés vous permet d’effectuer une journalisation structurée.Placeholders are handled this way so that you can do structured logging. Application Insights stocke les paires nom de paramètre/valeur et la chaîne de message.Application Insights stores the parameter name-value pairs and the message string. Ainsi, les arguments du message deviennent des champs pouvant faire l’objet de requêtes.The result is that the message arguments become fields that you can query on.

Si votre appel de méthode de l’enregistreur d’événements ressemble à l’exemple précédent, vous pouvez interroger le champ customDimensions.prop__rowKey.If your logger method call looks like the previous example, you can query the field customDimensions.prop__rowKey. L’ajout du préfixe prop__ évite toute collision entre les champs ajoutés par le runtime et les champs ajoutés par votre fonction de code.The prop__ prefix is added to ensure there are no collisions between fields the runtime adds and fields your function code adds.

Vous pouvez également exécuter une requête portant sur la chaîne de message d’origine en référençant le champ customDimensions.prop__{OriginalFormat}.You can also query on the original message string by referencing the field customDimensions.prop__{OriginalFormat}.

Voici un exemple de représentation JSON des données customDimensions :Here's a sample JSON representation of customDimensions data:

{
  customDimensions: {
    "prop__{OriginalFormat}":"C# Queue trigger function processed: {message}",
    "Category":"Function",
    "LogLevel":"Information",
    "prop__message":"c9519cbf-b1e6-4b9b-bf24-cb7d10b1bb89"
  }
}

Journalisation des métriques personnaliséesCustom metrics logging

Dans les fonctions de script C#, vous pouvez utiliser la méthode d’extension LogMetric sur ILogger pour créer des métriques personnalisées dans Application Insights.In C# script functions, you can use the LogMetric extension method on ILogger to create custom metrics in Application Insights. Voici un exemple d’appel de méthode :Here's a sample method call:

logger.LogMetric("TestMetric", 1234);

Ce code est une alternative à l’appel de TrackMetric à l’aide de l’API Application Insights pour .NET.This code is an alternative to calling TrackMetric by using the Application Insights API for .NET.

Écrire des journaux d’activité dans les fonctions JavaScriptWrite logs in JavaScript functions

Dans les fonctions Node.js, utilisez context.log pour écrire des journaux d’activité.In Node.js functions, use context.log to write logs. La journalisation structurée n’est pas activée.Structured logging isn't enabled.

context.log('JavaScript HTTP trigger function processed a request.' + context.invocationId);

Journalisation des métriques personnaliséesCustom metrics logging

Lors d'une exécution sur la version 1.x du runtime Functions, les fonctions Node.js peuvent utiliser la méthode context.log.metric pour créer des métriques personnalisées dans Application Insights.When you're running on version 1.x of the Functions runtime, Node.js functions can use the context.log.metric method to create custom metrics in Application Insights. Cette méthode n’est actuellement pas prise en charge dans la version 2.x et ultérieure.This method isn't currently supported in version 2.x and later. Voici un exemple d’appel de méthode :Here's a sample method call:

context.log.metric("TestMetric", 1234);

Ce code est une alternative à l’appel de trackMetric à l’aide du SDK Node.js pour Application Insights.This code is an alternative to calling trackMetric by using the Node.js SDK for Application Insights.

Journaliser des données de télémétrie personnalisées dans les fonctions C#Log custom telemetry in C# functions

Vous pouvez utiliser le package NuGet Microsoft.ApplicationInsights pour envoyer des données de télémétrie personnalisées à Application Insights.You can use the Microsoft.ApplicationInsights NuGet package to send custom telemetry data to Application Insights. L’exemple C# suivant utilise l’API de télémétrie personnalisée.The following C# example uses the custom telemetry API. L’exemple concerne une bibliothèque de classes .NET, mais le code Application Insights est le même pour le script C#.The example is for a .NET class library, but the Application Insights code is the same for C# script.

Version 2.x et ultérieureVersion 2.x and later

La version 2.x et les versions ultérieures du runtime utilisent les nouvelles fonctionnalités d’Application Insights pour mettre automatiquement en corrélation les données de télémétrie avec l’opération en cours.Version 2.x and later versions of the runtime use newer features in Application Insights to automatically correlate telemetry with the current operation. Il est inutile de définir manuellement les champs de l’opération Id, ParentId ou Name.There's no need to manually set the operation Id, ParentId, or Name fields.

using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;

namespace functionapp0915
{
    public class HttpTrigger2
    {
        private readonly TelemetryClient telemetryClient;

        /// Using dependency injection will guarantee that you use the same configuration for telemetry collected automatically and manually.
        public HttpTrigger2(TelemetryConfiguration telemetryConfiguration)
        {
            this.telemetryClient = new TelemetryClient(telemetryConfiguration);
        }

        [FunctionName("HttpTrigger2")]
        public Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)]
            HttpRequest req, ExecutionContext context, ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");
            DateTime start = DateTime.UtcNow;

            // Parse query parameter
            string name = req.Query
                .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
                .Value;

            // Track an Event
            var evt = new EventTelemetry("Function called");
            evt.Context.User.Id = name;
            this.telemetryClient.TrackEvent(evt);

            // Track a Metric
            var metric = new MetricTelemetry("Test Metric", DateTime.Now.Millisecond);
            metric.Context.User.Id = name;
            this.telemetryClient.TrackMetric(metric);

            // Track a Dependency
            var dependency = new DependencyTelemetry
            {
                Name = "GET api/planets/1/",
                Target = "swapi.co",
                Data = "https://swapi.co/api/planets/1/",
                Timestamp = start,
                Duration = DateTime.UtcNow - start,
                Success = true
            };
            dependency.Context.User.Id = name;
            this.telemetryClient.TrackDependency(dependency);

            return Task.FromResult<IActionResult>(new OkResult());
        }
    }
}

Version 1.xVersion 1.x

using System;
using System.Net;
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.Azure.WebJobs;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;
using System.Linq;

namespace functionapp0915
{
    public static class HttpTrigger2
    {
        private static string key = TelemetryConfiguration.Active.InstrumentationKey = 
            System.Environment.GetEnvironmentVariable(
                "APPINSIGHTS_INSTRUMENTATIONKEY", EnvironmentVariableTarget.Process);

        private static TelemetryClient telemetryClient = 
            new TelemetryClient() { InstrumentationKey = key };

        [FunctionName("HttpTrigger2")]
        public static async Task<HttpResponseMessage> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]
            HttpRequestMessage req, ExecutionContext context, ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");
            DateTime start = DateTime.UtcNow;

            // Parse query parameter
            string name = req.GetQueryNameValuePairs()
                .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
                .Value;

            // Get request body
            dynamic data = await req.Content.ReadAsAsync<object>();

            // Set name to query string or body data
            name = name ?? data?.name;
         
            // Track an Event
            var evt = new EventTelemetry("Function called");
            UpdateTelemetryContext(evt.Context, context, name);
            telemetryClient.TrackEvent(evt);
            
            // Track a Metric
            var metric = new MetricTelemetry("Test Metric", DateTime.Now.Millisecond);
            UpdateTelemetryContext(metric.Context, context, name);
            telemetryClient.TrackMetric(metric);
            
            // Track a Dependency
            var dependency = new DependencyTelemetry
                {
                    Name = "GET api/planets/1/",
                    Target = "swapi.co",
                    Data = "https://swapi.co/api/planets/1/",
                    Timestamp = start,
                    Duration = DateTime.UtcNow - start,
                    Success = true
                };
            UpdateTelemetryContext(dependency.Context, context, name);
            telemetryClient.TrackDependency(dependency);
        }
        
        // Correlate all telemetry with the current Function invocation
        private static void UpdateTelemetryContext(TelemetryContext context, ExecutionContext functionContext, string userName)
        {
            context.Operation.Id = functionContext.InvocationId.ToString();
            context.Operation.ParentId = functionContext.InvocationId.ToString();
            context.Operation.Name = functionContext.FunctionName;
            context.User.Id = userName;
        }
    }    
}

N’appelez pas TrackRequest ou StartOperation<RequestTelemetry>, afin d’éviter les doublons de requêtes pour un appel de fonction.Don't call TrackRequest or StartOperation<RequestTelemetry> because you'll see duplicate requests for a function invocation. Le runtime d’Azure Functions effectue automatiquement le suivi des demandes.The Functions runtime automatically tracks requests.

Ne définissez pas telemetryClient.Context.Operation.Id.Don't set telemetryClient.Context.Operation.Id. Ce paramètre global provoque une erreur de corrélation lorsqu’un grand nombre de fonctions s’exécutent en même temps.This global setting causes incorrect correlation when many functions are running simultaneously. Au lieu de cela, créez une nouvelle instance de télémétrie (DependencyTelemetry, EventTelemetry) et modifiez sa propriété Context.Instead, create a new telemetry instance (DependencyTelemetry, EventTelemetry) and modify its Context property. Passez ensuite l’instance de télémétrie à la méthode Track correspondante sur TelemetryClient (TrackDependency(), TrackEvent(), TrackMetric()).Then pass in the telemetry instance to the corresponding Track method on TelemetryClient (TrackDependency(), TrackEvent(), TrackMetric()). Cette méthode permet de s'assurer que les données de télémétrie comportent les bonnes informations de corrélation pour l’appel de fonction actuel.This method ensures that the telemetry has the correct correlation details for the current function invocation.

Journaliser des données de télémétrie personnalisées dans les fonctions JavaScriptLog custom telemetry in JavaScript functions

Voici un exemple d’extrait de code qui envoie des données de télémétrie personnalisées avec le SDK Node.js Application Insights :Here is a sample code snippet that sends custom telemetry with the Application Insights Node.js SDK:

const appInsights = require("applicationinsights");
appInsights.setup();
const client = appInsights.defaultClient;

module.exports = function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');

    client.trackEvent({name: "my custom event", tagOverrides:{"ai.operation.id": context.invocationId}, properties: {customProperty2: "custom property value"}});
    client.trackException({exception: new Error("handled exceptions can be logged with this method"), tagOverrides:{"ai.operation.id": context.invocationId}});
    client.trackMetric({name: "custom metric", value: 3, tagOverrides:{"ai.operation.id": context.invocationId}});
    client.trackTrace({message: "trace message", tagOverrides:{"ai.operation.id": context.invocationId}});
    client.trackDependency({target:"http://dbname", name:"select customers proc", data:"SELECT * FROM Customers", duration:231, resultCode:0, success: true, dependencyTypeName: "ZSQL", tagOverrides:{"ai.operation.id": context.invocationId}});
    client.trackRequest({name:"GET /customers", url:"http://myserver/customers", duration:309, resultCode:200, success:true, tagOverrides:{"ai.operation.id": context.invocationId}});

    context.done();
};

Le paramètre tagOverrides définit operation_Id sur l’ID d'appel de la fonction.The tagOverrides parameter sets the operation_Id to the function's invocation ID. Ce paramètre permet de mettre en corrélation toutes les données de télémétrie générées automatiquement et personnalisées pour un appel de fonction donné.This setting enables you to correlate all of the automatically generated and custom telemetry for a given function invocation.

Les dépendancesDependencies

Functions v2 collecte automatiquement les dépendances pour les requêtes HTTP, ServiceBus, EventHub et SQL.Functions v2 automatically collects dependencies for HTTP requests, ServiceBus, EventHub, and SQL.

Vous pouvez écrire du code personnalisé pour afficher les dépendances.You can write custom code to show the dependencies. Pour plus d'informations, consultez l'exemple de code dans la section relative aux données de télémétrie personnalisées C#.For examples, see the sample code in the C# custom telemetry section. L’exemple de code entraîne un mappage d’application dans Application Insights, qui se présente comme suit :The sample code results in an application map in Application Insights that looks like the following image:

Mise en correspondance d’applications

Signaler des problèmesReport issues

Pour signaler un problème avec l’intégration d’Application Insights dans Azure Functions, ou pour faire une suggestion ou une demande, créez un problème dans GitHub.To report an issue with Application Insights integration in Functions, or to make a suggestion or request, create an issue in GitHub.

Journaux d’activité en continuStreaming Logs

Quand vous développez une application, vous voulez souvent voir ce qui est écrit dans les journaux en quasi temps réel lors de l’exécution dans Azure.While developing an application, you often want to see what's being written to the logs in near real-time when running in Azure.

Il existe deux façons d’afficher un flux des fichiers journaux générés par vos exécutions de fonction.There are two ways to view a stream of log files being generated by your function executions.

  • Streaming des journaux intégré : la plateforme App Service vous permet d’afficher un flux de vos fichiers journaux d’application.Built-in log streaming: the App Service platform lets you view a stream of your application log files. Cela équivaut à la sortie observée quand vous déboguez vos fonctions au cours du développement local et quand vous utilisez l’onglet Test dans le portail.This is equivalent to the output seen when you debug your functions during local development and when you use the Test tab in the portal. Toutes les informations basées sur les journaux sont affichées.All log-based information is displayed. Pour plus d’informations, consultez Diffuser les journaux d’activité en continu.For more information, see Stream logs. Cette méthode de streaming ne prend en charge qu’une seule instance et ne peut pas être utilisée avec une application exécutée sur Linux dans un plan Consommation.This streaming method supports only a single instance, and can't be used with an app running on Linux in a Consumption plan.

  • Flux de métriques temps réel : quand votre application de fonction est connectée à Application Insights, vous pouvez voir les données des journaux et d’autres métriques en quasi temps réel dans le portail Azure avec Flux de métriques temps réel.Live Metrics Stream: when your function app is connected to Application Insights, you can view log data and other metrics in near real-time in the Azure portal using Live Metrics Stream. Appliquez cette méthode lors de la supervision de fonctions s’exécutant sur plusieurs instances ou sur Linux dans un plan Consommation.Use this method when monitoring functions running on multiple-instances or on Linux in a Consumption plan. Cette méthode utilise des données échantillonnées.This method uses sampled data.

Les flux de journaux peuvent être affichés à la fois dans le portail et dans la plupart des environnements de développement locaux.Log streams can be viewed both in the portal and in most local development environments.

PortailPortal

Vous pouvez afficher les deux types de flux de journaux dans le portail.You can view both types of log streams in the portal.

Streaming des journaux intégréBuilt-in log streaming

Pour afficher les journaux de diffusion en continu dans le portail, sélectionnez l'onglet Fonctionnalités de la plateforme dans votre application de fonction.To view streaming logs in the portal, select the Platform features tab in your function app. Ensuite, sous Surveillance, sélectionnez Diffusion en continu des journaux.Then, under Monitoring, choose Log streaming.

Activer les journaux de diffusion en continu dans le portail

Cela permet de connecter votre application au service de diffusion en continu des journaux, et les journaux d'application s'affichent dans la fenêtre.This connects your app to the log streaming service and application logs are displayed in the window. Vous pouvez basculer entre Journaux d’activité d’application et Journaux d’activité des serveurs Web.You can toggle between Application logs and Web server logs.

Afficher la diffusion de journaux d’activité en continu dans le portail

Live Metrics Stream (Flux continu de mesures)Live Metrics Stream

Pour voir le flux de métriques temps réel de votre application, sélectionnez l’onglet Vue d’ensemble de votre application de fonction.To view the Live Metrics Stream for your app, select the Overview tab of your function app. Quand Application Insights est activé, un lien Application Insights est visible sous Fonctionnalités configurées.When you have Application Insights enables, you see an Application Insights link under Configured features. Ce lien vous mène à la page Application Insights de votre application.This link takes you to the Application Insights page for your app.

Dans Application Insights, sélectionnez Flux de métriques temps réel.In Application Insights, select Live Metrics Stream. Les entrées de journaux échantillonnées sont affichées sous Exemple de télémétrie.Sampled log entries are displayed under Sample Telemetry.

Voir les flux de métriques temps réel dans le portail

Visual Studio CodeVisual Studio Code

Pour activer les journaux de diffusion en continu pour votre Function App dans Azure :To turn on the streaming logs for your function app in Azure:

  1. Sélectionnez F1 pour ouvrir la palette de commandes, puis recherchez et exécutez la commande Azure Functions : Start Streaming Logs (Démarrer les journaux de diffusion en continu).Select F1 to open the command palette, and then search for and run the command Azure Functions: Start Streaming Logs.

  2. Sélectionnez votre Function App dans Azure, puis sélectionnez Oui pour activer la journalisation d’application de votre Function App.Select your function app in Azure, and then select Yes to enable application logging for the function app.

  3. Déclenchez vos fonctions dans Azure.Trigger your functions in Azure. Notez que les données de journal sont affichées dans la fenêtre de résultats de Visual Studio Code.Notice that log data is displayed in the Output window in Visual Studio Code.

  4. Lorsque vous avez terminé, n’oubliez pas d’exécuter la commande Azure Functions : Stop Streaming Logs (Arrêter les journaux de diffusion en continu) pour désactiver la journalisation de la Function App.When you're done, remember to run the command Azure Functions: Stop Streaming Logs to disable logging for the function app.

Core ToolsCore Tools

Streaming des journaux intégréBuilt-in log streaming

Utilisez l’option logstream pour commencer à recevoir les journaux de streaming d’une application de fonction s’exécutant dans Azure, comme dans l’exemple suivant :Use the logstream option to start receiving streaming logs of a specific function app running in Azure, as in the following example:

func azure functionapp logstream <FunctionAppName>

Live Metrics Stream (Flux continu de mesures)Live Metrics Stream

Vous pouvez également afficher le Flux de métriques temps réel de votre application de fonction dans une nouvelle fenêtre de navigateur en incluant l’option --browser, comme dans l’exemple suivant :You can also view the Live Metrics Stream for your function app in a new browser window by including the --browser option, as in the following example:

func azure functionapp logstream <FunctionAppName> --browser

Azure CLIAzure CLI

Vous pouvez activer les journaux de diffusion en continu en utilisant Azure CLI.You can enable streaming logs by using the Azure CLI. Utilisez les commandes suivantes pour vous connecter, choisir votre abonnement et diffuser en continu les fichiers journaux :Use the following commands to sign in, choose your subscription, and stream log files:

az login
az account list
az account set --subscription <subscriptionNameOrId>
az webapp log tail --resource-group <RESOURCE_GROUP_NAME> --name <FUNCTION_APP_NAME>

Azure PowerShellAzure PowerShell

Vous pouvez activer les journaux de diffusion en continu en utilisant Azure PowerShell.You can enable streaming logs by using Azure PowerShell. Dans PowerShell, utilisez les commandes suivantes pour ajouter votre compte Azure, choisir votre abonnement et diffuser en continu les fichiers journaux :For PowerShell, use the following commands to add your Azure account, choose your subscription, and stream log files:

Add-AzAccount
Get-AzSubscription
Get-AzSubscription -SubscriptionName "<subscription name>" | Select-AzSubscription
Get-AzWebSiteLog -Name <FUNCTION_APP_NAME> -Tail

Désactiver la journalisation intégréeDisable built-in logging

Lorsque vous activez Application Insights, désactivez la journalisation intégrée qui utilise le Stockage Azure.When you enable Application Insights, disable the built-in logging that uses Azure Storage. La journalisation intégrée permet de tester des charges de travail légères, mais n'a pas vocation à être utilisée en production avec des charges importantes.The built-in logging is useful for testing with light workloads, but isn't intended for high-load production use. Nous recommandons Application Insights à des fins de surveillance de la production.For production monitoring, we recommend Application Insights. Si la journalisation intégrée est utilisée en production, l’enregistrement de journal peut être incomplet en raison d’une limitation du Stockage Azure.If built-in logging is used in production, the logging record might be incomplete because of throttling on Azure Storage.

Pour désactiver la journalisation intégrée, supprimez le paramètre d’application AzureWebJobsDashboard.To disable built-in logging, delete the AzureWebJobsDashboard app setting. Pour plus d’informations sur la suppression de paramètres d’application dans le portail Azure, consultez la section Paramètres de l’application dans Comment gérer une application de fonction dans le portail Azure.For information about how to delete app settings in the Azure portal, see the Application settings section of How to manage a function app. Avant de supprimer le paramètre d’application, assurez-vous qu’aucune fonction existante dans la même application de fonction ne l’utilise pour les déclencheurs ou les liaisons du Stockage Azure.Before you delete the app setting, make sure no existing functions in the same function app use the setting for Azure Storage triggers or bindings.

Étapes suivantesNext steps

Pour plus d’informations, consultez les ressources suivantes :For more information, see the following resources: