Überwachen von Azure FunctionsMonitor Azure Functions

Azure Functions bietet von Haus aus Integration in Azure Application Insights zum Überwachen von Funktionen.Azure Functions offers built-in integration with Azure Application Insights to monitor functions. In diesem Artikel wird veranschaulicht, wie Sie Azure Functions zum Senden von systemseitig generierten Protokolldateien an Application Insights konfigurieren.This article shows you how to configure Azure Functions to send system-generated log files to Application Insights.

Es wird empfohlen, Protokoll-, Leistungs- und Fehlerdaten mithilfe von Application Insights zu erfassen.We recommend using Application Insights because it collects log, performance, and error data. Der Dienst erkennt Leistungsanomalien automatisch und verfügt über leistungsstarke Analysetools, mit denen Sie Probleme untersuchen und nachvollziehen können, wie Ihre Funktionen verwendet werden.It automatically detects performance anomalies and includes powerful analytics tools to help you diagnose issues and to understand how your functions are used. Der Dienst unterstützt Sie bei der kontinuierlichen Verbesserung der Leistung und Benutzerfreundlichkeit Ihrer App.It's designed to help you continuously improve performance and usability. Sie können Application Insights auch während der lokalen Entwicklung an Funktions-App-Projekten verwenden.You can even use Application Insights during local function app project development. Weitere Informationen finden Sie unter Was ist Application Insights?For more information, see What is Application Insights?

Da die erforderliche Instrumentierung von Application Insights in Azure Functions integriert ist, benötigen Sie lediglich einen gültigen Instrumentierungsschlüssel, um Ihre Funktions-App mit einer Application Insights-Ressource zu verbinden.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.

Application Insights – Preise und LimitsApplication Insights pricing and limits

Sie können die Application Insights-Integration in Funktionen-Apps kostenlos testen.You can try out Application Insights integration with Function Apps for free. Für die Menge der Daten, die täglich kostenlos verarbeitet werden können, gibt es einen Grenzwert.There's a daily limit to how much data can be processed for free. Beim Testen können Sie an diesen Grenzwert stoßen.You might hit this limit during testing. In Azure erhalten Sie Benachrichtigungen im Portal und per E-Mail, wenn Ihr Tageslimit beinahe erreicht ist.Azure provides portal and email notifications when you're approaching your daily limit. Wenn Sie diese Benachrichtigungen ignorieren und das Limit erreichen, werden neue Protokolle nicht in Application Insights-Abfragen angezeigt.If you miss those alerts and hit the limit, new logs won't appear in Application Insights queries. Seien Sie sich des Grenzwerts bewusst, um unnötigen Zeitaufwand für die Problembehandlung zu vermeiden.Be aware of the limit to avoid unnecessary troubleshooting time. Weitere Informationen finden Sie unter Verwalten von Preisen und Datenvolumen in Application Insights.For more information, see Manage pricing and data volume in Application Insights.

Aktivieren der Application Insights-IntegrationEnable Application Insights integration

Damit eine Funktionen-App Daten an Application Insights senden kann, muss sie den Instrumentierungsschlüssel einer Application Insights-Ressource kennen.For a function app to send data to Application Insights, it needs to know the instrumentation key of an Application Insights resource. Der Schlüssel muss in der App-Einstellung APPINSIGHTS_INSTRUMENTATIONKEY angegeben werden.The key must be in an app setting named APPINSIGHTS_INSTRUMENTATIONKEY.

Neue Funktions-App im Azure-PortalNew function app in the portal

Wenn Sie Ihre Funktions-App im Azure-Portal entwickeln, ist die Application Insights-Integration standardmäßig aktiviert.When you create your function app in the Azure portal, Application Insights integration is enabled by default. Die Application Insights-Ressource hat den gleichen Namen wie Ihre Funktions-App und wird entweder in der gleichen oder nächstgelegenen Region erstellt.The Application Insights resource has the same name as your function app, and it's created either in the same region or in nearest region.

Zum Überprüfen der Application Insights-Ressource, die erstellt wird, wählen Sie sie aus, um das Fenster Application Insights zu erweitern.To review the Application Insights resource being created, select it to expand the Application Insights window. Sie können den neuen Ressourcennamen ändern oder einen anderen Standort in einer Azure-Region wählen, in der Sie Ihre Daten speichern möchten.You can change the New resource name or choose a different Location in an Azure geography where you want to store your data.

Aktivieren von Application Insights beim Erstellen einer Funktionen-App

Wenn Sie auf Erstellen klicken, wird eine Application Insights-Ressource mit Ihrer Funktions-App erstellt, bei der APPINSIGHTS_INSTRUMENTATIONKEY in den Anwendungseinstellungen festgelegt ist.When you choose Create, an Application Insights resource is created with your function app, which has the APPINSIGHTS_INSTRUMENTATIONKEY set in application settings. Alles ist betriebsbereit.Everything is ready to go.

Ergänzen einer vorhandenen Funktions-AppAdd to an existing function app

Beim Erstellen einer Funktions-App mit der Azure CLI, Visual Studio oder Visual Studio Code müssen Sie die Application Insights-Ressource erstellen.When you create a function app using the Azure CLI, Visual Studio, or Visual Studio Code, you must create the Application Insights resource. Sie können dann den Instrumentierungsschlüssel dieser Ressource Ihrer Funktions-App als Anwendungseinstellung hinzufügen.You can then add the instrumentation key from that resource as an application setting in your function app.

Mit Functions ist es einfach, die Application Insights-Integration über das Azure-Portal einer Funktionen-App hinzuzufügen.Functions makes it simple to add Application Insights integration to a function app from the Azure portal.

  1. Wählen Sie im Portal die Option Alle Dienste > Funktionen-Apps und dann Ihre Funktionen-App aus. Wählen Sie anschließend oben im Fenster das Banner Application Insights aus.In the portal, select All services > Function Apps, select your function app, and then choose the Application Insights banner at the top of the window

    Aktivieren von Application Insights über das Portal

  2. Erstellen Sie eine Application Insights-Ressource, indem Sie die Einstellungen verwenden, die in der Tabelle unterhalb des Bilds angegeben sind:Create an Application Insights resource by using the settings specified in the table below the image:

    Erstellen einer Application Insights-Ressource

    EinstellungSetting Empfohlener WertSuggested value BeschreibungDescription
    NameName Eindeutiger App-NameUnique app name Es ist am einfachsten, den gleichen Namen wie für Ihre Funktionen-App zu verwenden, der in Ihrem Abonnement eindeutig sein muss.It's easiest to use the same name as your function app, which must be unique in your subscription.
    LocationLocation Europa, WestenWest Europe Verwenden Sie nach Möglichkeit dieselbe Region wie für Ihre Funktionen-App (oder eine Region in der Nähe).If possible, use the same region as your function app, or near to it.
  3. Klicken Sie auf OK.Choose OK. Die Application Insights-Ressource wird in derselben Ressourcengruppe und unter demselben Abonnement wie Ihre Funktionen-App erstellt.The Application Insights resource is created in the same resource group and subscription as your function app. Schließen Sie das Application Insights-Fenster, nachdem die Erstellung abgeschlossen ist.After creation completes, close the Application Insights window.

  4. Wählen Sie in Ihrer Funktionen-App die Option Anwendungseinstellungen, und scrollen Sie nach unten zu Anwendungseinstellungen.Back in your function app, select Application settings, and scroll down to Application settings. Wenn die Einstellung APPINSIGHTS_INSTRUMENTATIONKEY angezeigt wird, bedeutet dies, dass die Application Insights-Integration für Ihre unter Azure ausgeführte Funktionen-App aktiviert ist.When you see a setting named APPINSIGHTS_INSTRUMENTATIONKEY, it means that Application Insights integration is enabled for your function app running in Azure.

In früheren Versionen von Azure Functions wurde die integrierte Überwachung verwendet, was nicht mehr empfohlen wird.Early versions of Functions used built-in monitoring, which is no longer recommended. Wenn Sie die Application Insights-Integration für eine solche Funktions-App aktivieren, müssen Sie auch die integrierte Protokollierung deaktivieren.When enabling Application Insights integration for such a function app, you must also disable built-in logging.

Anzeigen von Telemetriedaten auf der Registerkarte „Überwachen“View telemetry in Monitor tab

Bei aktivierter Application Insights-Integration können Sie Telemetriedaten auf der Registerkarte Überwachung einsehen.With Application Insights integration enabled, you can view telemetry data in the Monitor tab.

  1. Wählen Sie auf der Seite der Funktions-App eine Funktion aus, die nach der Konfiguration von Application Insights mindestens einmal ausgeführt wurde.In the function app page, select a function that has run at least once after Application Insights was configured. Wählen Sie dann die Registerkarte Überwachen aus.Then select the Monitor tab.

    Auswählen der Registerkarte „Überwachen“

  2. Wählen Sie wiederholt die Option Aktualisieren aus, bis die Liste der Funktionsaufrufe angezeigt wird.Select Refresh periodically, until the list of function invocations appears.

    Es kann bis zu 5 Minuten dauern, bis die Liste angezeigt wird, während der Telemetrieclient Daten zur Übermittlung an den Server in Batches zusammenfasst.It can take up to five minutes for the list to appear while the telemetry client batches data for transmission to the server. (Diese Verzögerung gilt nicht für Live Metrics Stream.(The delay doesn't apply to the Live Metrics Stream. Bei diesem Dienst wird eine Verbindung mit dem Functions-Host hergestellt, wenn Sie die Seite laden, sodass Protokolle direkt an die Seite gestreamt werden.)That service connects to the Functions host when you load the page, so logs are streamed directly to the page.)

    Liste der Funktionsaufrufe

  3. Wählen Sie zum Anzeigen der Protokolle für einen bestimmten Funktionsaufruf den Link für diesen Aufruf in der Spalte Datum aus.To see the logs for a particular function invocation, select the Date column link for that invocation.

    Link für Aufrufdetails

    Die Protokollausgabe für diesen Aufruf wird auf einer neuen Seite angezeigt.The logging output for that invocation appears in a new page.

    Aufrufdetails

Wie Sie sehen, weisen beide Seiten den Link In Application Insights ausführen auf, der zur Application Insights Analytics-Abfrage führt, die die Daten abruft.You can see that both pages have a Run in Application Insights link to the Application Insights Analytics query that retrieves the data.

In Application Insights ausführen

Die folgende Abfrage wird angezeigt.The following query is displayed. Sie können erkennen, dass die Aufrufliste auf die letzten 30 Tage beschränkt ist.You can see that the invocation list is limited to the last 30 days. Die Liste zeigt nicht mehr als 20 Zeilen an (where timestamp > ago(30d) | take 20).The list shows no more than 20 rows (where timestamp > ago(30d) | take 20). Die Liste der Aufrufdetails betrifft die letzten 30 Tage ohne Beschränkung.The invocation details list is for the last 30 days with no limit.

Application Insights Analytics-Aufrufliste

Weitere Informationen finden Sie weiter unten in diesem Artikel unter Abfragen von Telemetriedaten.For more information, see Query telemetry data later in this article.

Anzeigen von Telemetriedaten in Application InsightsView telemetry in Application Insights

Um Application Insights aus einer Funktions-App im Azure-Portal zu öffnen, wechseln Sie zur Seite Übersicht der Funktions-App.To open Application Insights from a function app in the Azure portal, go to the function app's Overview page. Wählen Sie unter Konfigurierte Features Application Insights aus.Under Configured features, select Application Insights.

Öffnen von Application Insights auf der Seite „Übersicht“ von Funktions-Apps

Informationen zur Verwendung von Application Insights finden Sie in der Application Insights-Dokumentation.For information about how to use Application Insights, see the Application Insights documentation. In diesem Abschnitt sind einige Beispiele für das Anzeigen von Daten in Application Insights enthalten.This section shows some examples of how to view data in Application Insights. Falls Sie mit Application Insights bereits vertraut sind, können Sie direkt zu den Abschnitten zur Konfiguration und Anpassung der Telemetriedaten springen.If you're already familiar with Application Insights, you can go directly to the sections about how to configure and customize the telemetry data.

Application Insights-Registerkarte „Übersicht“

Die folgenden Bereiche von Application Insights können bei der Bewertung des Verhaltens, der Leistung und der Fehler in Ihren Funktionen hilfreich sein:The following areas of Application Insights can be helpful when evaluating the behavior, performance, and errors in your functions:

TABTab BESCHREIBUNGDescription
FehlerFailures Hier können Sie Diagramme und Warnungen basierend auf Funktionsfehlern und Serverausnahmen erstellen.Create charts and alerts based on function failures and server exceptions. Der Vorgangsname ist der Funktionsname.The Operation Name is the function name. Fehler in Abhängigkeiten werden nur angezeigt, wenn Sie die benutzerdefinierte Telemetrie für Abhängigkeiten implementieren.Failures in dependencies aren't shown unless you implement custom telemetry for dependencies.
LeistungPerformance Hier können Sie Leistungsprobleme analysieren.Analyze performance issues.
ServerServers Hier werden die Ressourcennutzung und der Durchsatz pro Server angezeigt.View resource utilization and throughput per server. Diese Daten können nützlich für Debugszenarien sein, in denen Ihre zugrunde liegenden Ressourcen durch Funktionen eingeschränkt werden.This data can be useful for debugging scenarios where functions are bogging down your underlying resources. Server werden als Cloudrolleninstanzen bezeichnet.Servers are referred to as Cloud role instances.
MetrikenMetrics Hier können Sie Diagramme und Warnungen auf der Grundlage von Metriken erstellen.Create charts and alerts that are based on metrics. Metriken enthalten die Anzahl der Funktionsaufrufe, die Ausführungsdauer und die Erfolgsquote.Metrics include the number of function invocations, execution time, and success rates.
Live Metrics StreamLive Metrics Stream Sie können Metrikdaten während ihrer Erstellung in Echtzeit anzeigen.View metrics data as it's created in real time.

Abfragen von TelemetriedatenQuery telemetry data

Mit Application Insights Analytics haben Sie Zugriff auf alle Telemetriedaten in Form von Tabellen in einer Datenbank.Application Insights Analytics gives you access to all telemetry data in the form of tables in a database. Analytics stellt eine Abfragesprache zum Extrahieren, Bearbeiten und Visualisieren der Daten bereit.Analytics provides a query language for extracting, manipulating, and visualizing the data.

Auswählen von Analytics

Analytics-Beispiel

Diese Abfragebeispiel zeigt Verteilung von Anforderungen pro Worker in den letzten 30 Minuten.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

Die verfügbaren Tabellen werden links auf der Registerkarte Schema angezeigt.The tables that are available are shown in the Schema tab on the left. Daten, die durch Funktionsaufrufe generiert wurden, sind in den folgenden Tabellen enthalten:You can find data generated by function invocations in the following tables:

TableTable BESCHREIBUNGDescription
tracestraces Protokolle, die von der Laufzeit und durch Funktionscode erstellt wurden.Logs created by the runtime and by function code.
requestsrequests Jeweils eine Anforderung pro Funktionsaufruf.One request for each function invocation.
Ausnahmenexceptions Alle Ausnahmen, die von der Laufzeit ausgelöst werden.Any exceptions thrown by the runtime.
customMetricscustomMetrics Die Anzahl von erfolgreichen und nicht erfolgreichen Aufrufen, Erfolgsrate und Dauer.The count of successful and failing invocations, success rate, and duration.
customEventscustomEvents Ereignisse, die von der Runtime verfolgt werden, z. B.: HTTP-Anforderungen, die eine Funktion auslösen.Events tracked by the runtime, for example: HTTP requests that trigger a function.
performanceCountersperformanceCounters Informationen zur Leistung der Server, auf denen die Funktionen ausgeführt werden.Information about the performance of the servers that the functions are running on.

Die anderen Tabellen sind für Verfügbarkeitstests und Client/Browser-Telemetrie bestimmt.The other tables are for availability tests, and client and browser telemetry. Sie können die benutzerdefinierte Telemetrie implementieren, um Daten hinzuzufügen.You can implement custom telemetry to add data to them.

In jeder Tabelle befinden sich einige der Functions-spezifischen Daten im Feld customDimensions.Within each table, some of the Functions-specific data is in a customDimensions field. Mit der folgenden Abfrage werden beispielsweise alle Ablaufverfolgungen mit der Protokollebene Error abgerufen.For example, the following query retrieves all traces that have log level Error.

traces 
| where customDimensions.LogLevel == "Error"

Die Runtime stellt die Felder customDimensions.LogLevel und customDimensions.Category zur Verfügung.The runtime provides the customDimensions.LogLevel and customDimensions.Category fields. Sie können zusätzliche Felder in Protokollen angeben, die Sie in Ihren Funktionscode schreiben.You can provide additional fields in logs that you write in your function code. Informationen hierzu finden Sie unter Strukturierte Protokollierung in diesem Artikel.See Structured logging later in this article.

Konfigurieren von Kategorien und ProtokollebenenConfigure categories and log levels

Sie können Application Insights ganz ohne benutzerdefinierte Konfiguration verwenden.You can use Application Insights without any custom configuration. Die Standardkonfiguration kann zu großen Datenmengen führen.The default configuration can result in high volumes of data. Wenn Sie ein Visual Studio Azure-Abonnement verwenden, erreichen Sie unter Umständen Ihr Datenlimit für Application Insights.If you're using a Visual Studio Azure subscription, you might hit your data cap for Application Insights. Später in diesem Artikel erfahren Sie, wie Sie die Daten konfigurieren und anpassen, die Ihre Funktionen an Application Insights senden.Later in this article, you learn how to configure and customize the data that your functions send to Application Insights. Für eine Funktions-App wird die Protokollierung in der Datei [host.json] konfiguriert.For a function app, logging is configured in the [host.json] file.

CategoriesCategories

Die Azure Functions-Protokollierung enthält eine Kategorie für jedes Protokoll.The Azure Functions logger includes a category for every log. Mit der Kategorie wird angegeben, von welchem Teil des Laufzeitcodes bzw. Ihres Funktionscodes das Protokoll geschrieben wurde.The category indicates which part of the runtime code or your function code wrote the log.

Mit der Functions-Runtime werden Protokolle mit einer Kategorie erstellt, die mit „Host“ beginnen.The Functions runtime creates logs with a category that begin with "Host." Die Protokolle „function started“, „function executed“ und „function completed“ weisen die Kategorie „Host.Executor“ auf.The "function started," "function executed," and "function completed" logs have the category "Host.Executor."

Wenn Sie Protokolle in Ihren Funktionscode schreiben, lautet deren Kategorie „Function“.If you write logs in your function code, their category is "Function."

ProtokollebenenLog levels

Die Azure Functions-Protokollierung enthält auch einen Protokolliergrad für jedes Protokoll.The Azure Functions logger also includes a log level with every log. LogLevel ist eine Enumeration, und der Code (eine Zahl) weist auf die relative Bedeutung hin:LogLevel is an enumeration, and the integer code indicates relative importance:

LogLevelLogLevel CodeCode
TraceTrace 00
DebuggenDebug 11
InformationInformation 22
WarnungWarning 33
ErrorError 44
KritischCritical 55
KeineNone 66

Die Protokollebene None wird im nächsten Abschnitt beschrieben.Log level None is explained in the next section.

Protokollkonfiguration in „host.json“Log configuration in host.json

Mit der Datei [host.json] wird konfiguriert, welcher Protokollierungsgrad von einer Funktionen-App an Application Insights gesendet wird.The [host.json] file configures how much logging a function app sends to Application Insights. Für jede Kategorie geben Sie zu sendende Mindestprotokollebene an.For each category, you indicate the minimum log level to send. Es gibt zwei Beispiele: Das erste hat die Zielplattform Functions Version 2.x-Runtime (.NET Core), das zweite bezieht sich auf die Version 1.x-Runtime.There are two examples: the first example targets the Functions version 2.x runtime (.NET Core) and the second example is for the version 1.x runtime.

Version 2.xVersion 2.x

Die v2.x-Runtime verwendet jetzt die .NET Core-Protokollfilterhierarchie.The v2.x runtime uses 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"
      }
    }
  }
}

In diesem Beispiel werden die folgenden Regeln eingerichtet:This example sets up the following rules:

  • Für Protokolle mit der Kategorie Host.Results oder Function wird nur die Stufe Error oder höher an Application Insights gesendet.For logs with category Host.Results or Function, send only Error level and above to Application Insights. Protokolle für die Ebene Warning und niedriger werden ignoriert.Logs for Warning level and below are ignored.
  • Für Protokolle mit der Kategorie Host.Aggregator werden alle Protokolle an Application Insights gesendet.For logs with category Host.Aggregator, send all logs to Application Insights. Die Protokollebene Trace entspricht dem, was in einigen Protokollierungen als Verbose bezeichnet wird. In der [host.json]-Datei soll jedoch Trace verwendet werden.The Trace log level is the same as what some loggers call Verbose, but use Trace in the [host.json] file.
  • Für alle anderen Protokolle soll nur die Ebene Information und höher an Application Insights gesendet werden.For all other logs, send only Information level and above to Application Insights.

Der Kategoriewert in [host.json] steuert die Protokollierung für alle Kategorien, die mit dem gleichen Wert beginnen.The category value in [host.json] controls logging for all categories that begin with the same value. Host in [host.json] steuert die Protokollierung für Host.General, Host.Executor, Host.Results usw.in [host.json] controls logging for Host.General, Host.Executor, Host.Results, and so on.

Wenn [host.json] mehrere Kategorien enthält, die mit der gleichen Zeichenfolge beginnen, werden zuerst die längeren abgeglichen.If [host.json] includes multiple categories that start with the same string, the longer ones are matched first. Nehmen Sie an, Sie möchten alles für die Runtime mit Ausnahme von Host.Aggregator auf der Ebene Error protokollieren, während Host.Aggregator auf der Ebene Information protokolliert werden soll: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.xVersion 2.x

{
  "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"
      }
    }
  }
}

Um alle Protokolle für eine Kategorie zu unterdrücken, können Sie die Protokollebene None verwenden.To suppress all logs for a category, you can use log level None. Mit dieser Kategorie werden keine Protokolle geschrieben, und darüber ist keine Protokollebene vorhanden.No logs are written with that category and there's no log level above it.

In den folgenden Abschnitten werden die Hauptkategorien der Protokolle beschrieben, die von der Laufzeit erstellt werden.The following sections describe the main categories of logs that the runtime creates.

Kategorie „Host.Results“Category Host.Results

Diese Protokolle werden in Application Insights als „requests“ (Anforderungen) angezeigt.These logs show as "requests" in Application Insights. Sie geben für eine Funktion den Erfolg oder das Fehlschlagen an.They indicate success or failure of a function.

Diagramm zu Anforderungen

Alle diese Protokolle werden auf der Stufe Information geschrieben.All of these logs are written at Information level. Wenn Sie nach Warning oder höheren Stufen filtern, finden Sie keine dieser Daten.If you filter at Warning or above, you won't see any of this data.

Kategorie „Host.Aggregator“Category Host.Aggregator

Diese Protokolle stellen die Anzahl und Durchschnittswerte von Funktionsaufrufen für einen konfigurierbaren Zeitraum dar.These logs provide counts and averages of function invocations over a configurable period of time. Der Standardzeitraum beträgt 30 Sekunden oder 1.000 Ergebnisse, je nachdem, was früher eintritt.The default period is 30 seconds or 1,000 results, whichever comes first.

Die Protokolle sind in Application Insights in der Tabelle customMetrics verfügbar.The logs are available in the customMetrics table in Application Insights. Beispiele hierfür sind die Ausführungsanzahl, die Erfolgsrate und die Dauer.Examples are the number of runs, success rate, and duration.

customMetrics-Abfrage

Alle diese Protokolle werden auf der Stufe Information geschrieben.All of these logs are written at Information level. Wenn Sie nach Warning oder höheren Stufen filtern, finden Sie keine dieser Daten.If you filter at Warning or above, you won't see any of this data.

Weitere KategorienOther categories

Alle Protokolle für andere Kategorien, die nicht bereits aufgeführt sind, werden in Application Insights in der Tabelle traces angezeigt.All logs for categories other than the ones already listed are available in the traces table in Application Insights.

traces-Abfrage

Alle Protokolle mit Kategorien, die mit Host beginnen, werden von der Functions-Laufzeit geschrieben.All logs with categories that begin with Host are written by the Functions runtime. Die Protokolle „Function started“ und „Function completed“ verfügen über die Kategorie Host.Executor.The "Function started" and "Function completed" logs have category Host.Executor. Bei erfolgreichen Ausführungen haben diese Protokolle die Stufe Information.For successful runs, these logs are Information level. Ausnahmen werden mit der Stufe Error protokolliert.Exceptions are logged at Error level. Die Laufzeit erstellt auch Protokolle der Ebene Warning, z.B. an die Warteschlange für nicht verarbeitete Nachrichten gesendete Warteschlangennachrichten.The runtime also creates Warning level logs, for example: queue messages sent to the poison queue.

Protokolle, die von Ihrem Funktionscode geschrieben werden, verfügen über die Kategorie Function und können jede Protokollstufe aufweisen.Logs written by your function code have category Function and can be any log level.

Konfigurieren des AggregatorsConfigure the aggregator

Wie im vorherigen Abschnitt erwähnt, werden von der Laufzeit Daten zu den Funktionsausführungen in einem bestimmten Zeitraum aggregiert.As noted in the previous section, the runtime aggregates data about function executions over a period of time. Der Standardzeitraum beträgt 30 Sekunden oder 1.000 Ausführungen, je nachdem, was früher eintritt.The default period is 30 seconds or 1,000 runs, whichever comes first. Sie können diese Einstellung in der Datei [host.json] konfigurieren.You can configure this setting in the [host.json] file. Hier sehen Sie ein Beispiel:Here's an example:

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

Konfigurieren des SamplingsConfigure sampling

Application Insights verfügt über ein Feature zur Stichprobenentnahme als Schutz davor, dass bei Spitzenlast zu viele Telemetriedaten für erfolgte Vorgänge produziert werden.Application Insights has a sampling feature that can protect you from producing too much telemetry data on completed executions at times of peak load. Wenn die Rate der eingehenden ausgeführten Vorgänge einen bestimmten Schwellenwert übersteigt, beginnt Application Insights, einige der eingehenden ausgeführten Vorgänge nach dem Zufallsprinzip zu ignorieren.When the rate of incoming executions exceeds a specified threshold, Application Insights starts to randomly ignore some of the incoming executions. Die Standardeinstellung für die maximale Anzahl ausgeführter Vorgänge pro Sekunde ist 20 (5 in Version 1.x).The default setting for maximum number of executions per second is 20 (five in version 1.x). Sie können das Sampling in der Datei [host.json] konfigurieren.You can configure sampling in [host.json]. Hier sehen Sie ein Beispiel:Here's an example:

Version 2.xVersion 2.x

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

Version 1.xVersion 1.x

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

Hinweis

Das Sampling ist standardmäßig aktiviert.Sampling is enabled by default. Wenn Ihnen Daten zu fehlen scheinen, müssen Sie möglicherweise nur die Sampling-Einstellungen an Ihr spezielles Überwachungsszenario anpassen.If you appear to be missing data, you might need to adjust the sampling settings to fit your particular monitoring scenario.

Schreiben von Protokollen in C#-FunktionenWrite logs in C# functions

Sie können Protokolle in Ihrem Funktionscode schreiben, die in Application Insights als Ablaufverfolgungen angezeigt werden.You can write logs in your function code that appear as traces in Application Insights.

ILoggerILogger

Verwenden Sie den Parameter ILogger in Ihren Funktionen anstelle des Parameters TraceWriter.Use an ILogger parameter in your functions instead of a TraceWriter parameter. Protokolle, die mit TraceWriter erstellt werden, werden an Application Insights geleitet, aber mit ILogger können Sie die strukturierte Protokollierung durchführen.Logs created by using TraceWriter go to Application Insights, but ILogger lets you do structured logging.

Mit einem ILogger-Objekt rufen Sie Log<level>-Erweiterungsmethoden in ILogger auf, um Protokolle zu erstellen.With an ILogger object, you call Log<level> extension methods on ILogger to create logs. Mit dem folgenden Code werden Protokolle vom Typ Information mit der Kategorie „Function“ geschrieben.The following code writes Information logs with category "Function."

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

Strukturierte ProtokollierungStructured logging

Die Reihenfolge der Platzhalter, nicht der Namen, bestimmt, welche Parameter in der Protokollnachricht verwendet werden.The order of placeholders, not their names, determines which parameters are used in the log message. Angenommen, Sie verwenden den folgenden Code:Suppose you have the following code:

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

Wenn Sie die gleiche Nachrichtenzeichenfolge beibehalten und die Reihenfolge der Parameter umkehren, befinden sich die Werte im resultierenden Nachrichtentext an den falschen Stellen.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.

Platzhalter werden auf diese Weise verarbeitet, damit Sie die strukturierte Protokollierung durchführen können.Placeholders are handled this way so that you can do structured logging. Application Insights speichert die Name/Wert-Paare für Parameter und die Nachrichtenzeichenfolge.Application Insights stores the parameter name-value pairs and the message string. Das Ergebnis ist, dass die Nachrichtenargumente zu Feldern werden, anhand denen Sie Abfragen durchführen können.The result is that the message arguments become fields that you can query on.

Wenn Ihr Methodenaufruf für die Protokollierung wie im vorherigen Beispiel aussieht, können Sie das Feld customDimensions.prop__rowKey abfragen.If your logger method call looks like the previous example, you can query the field customDimensions.prop__rowKey. Durch das Hinzufügen des Präfix prop__ soll sichergestellt werden, dass es zwischen den Feldern, die von der Runtime hinzugefügt werden, und Feldern, die von Ihrem Funktionscode hinzugefügt werden, nicht zu Konflikten kommt.The prop__ prefix is added to ensure there are no collisions between fields the runtime adds and fields your function code adds.

Sie können auch die ursprüngliche Nachrichtenzeichenfolge abfragen, indem Sie auf das Feld customDimensions.prop__{OriginalFormat} verweisen.You can also query on the original message string by referencing the field customDimensions.prop__{OriginalFormat}.

Hier ist eine JSON-Beispieldarstellung von customDimensions-Daten angegeben: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"
  }
}

Protokollieren von benutzerdefinierten MetrikenCustom metrics logging

In C#-Skriptfunktionen können Sie die LogMetric-Erweiterungsmethode in ILogger verwenden, um in Application Insights benutzerdefinierte Metriken zu erstellen.In C# script functions, you can use the LogMetric extension method on ILogger to create custom metrics in Application Insights. Hier ist ein Beispiel für einen Methodenaufruf angegeben:Here's a sample method call:

logger.LogMetric("TestMetric", 1234);

Dieser Code ist eine Alternative zum Aufrufen von TrackMetric mithilfe der Application Insights-API für .NET.This code is an alternative to calling TrackMetric by using the Application Insights API for .NET.

Schreiben von Protokollen in JavaScript-FunktionenWrite logs in JavaScript functions

Verwenden Sie in Node.js-Funktionen context.log zum Schreiben von Protokollen.In Node.js functions, use context.log to write logs. Die strukturierte Protokollierung ist nicht aktiviert.Structured logging isn't enabled.

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

Protokollieren von benutzerdefinierten MetrikenCustom metrics logging

Bei der Ausführung von Version 1.x der Functions-Runtime können Node.js-Funktionen die context.log.metric-Methode verwenden, um in Application Insights benutzerdefinierte Metriken zu erstellen.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. Diese Methode wird derzeit in Version 2.x nicht unterstützt.This method isn't currently supported in version 2.x. Hier ist ein Beispiel für einen Methodenaufruf angegeben:Here's a sample method call:

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

Dieser Code ist eine Alternative zum Aufrufen von trackMetric mithilfe des Node.js SDK für Application Insights.This code is an alternative to calling trackMetric by using the Node.js SDK for Application Insights.

Protokollieren von benutzerdefinierter Telemetrie in C#-FunktionenLog custom telemetry in C# functions

Sie können das NuGet-Paket Microsoft.ApplicationInsights verwenden, um benutzerdefinierte Telemetriedaten an Application Insights zu senden.You can use the Microsoft.ApplicationInsights NuGet package to send custom telemetry data to Application Insights. Das folgenden C#-Beispiel verwendet die benutzerdefinierte Telemetrie-API.The following C# example uses the custom telemetry API. Das Beispiel gilt für eine .NET-Klassenbibliothek, aber der Application Insights-Code ist für C#-Skript identisch.The example is for a .NET class library, but the Application Insights code is the same for C# script.

Version 2.xVersion 2.x

Die Version 2.x-Runtime verwendet neue Features in Application Insights-Telemetriedaten, um die Telemetrie automatisch mit dem aktuellen Vorgang zu korrelieren.The version 2.x runtime uses newer features in Application Insights to automatically correlate telemetry with the current operation. Es ist nicht erforderlich, für den Vorgang die Felder Id, ParentId oder Name festzulegen.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;
        }
    }    
}

Vermeiden Sie es, TrackRequest oder StartOperation<RequestTelemetry> aufzurufen, da in diesem Fall für einen Funktionsaufruf doppelte Anforderungen angezeigt werden.Don't call TrackRequest or StartOperation<RequestTelemetry> because you'll see duplicate requests for a function invocation. Mit der Functions-Laufzeit werden Anforderungen automatisch nachverfolgt.The Functions runtime automatically tracks requests.

Legen Sie nicht telemetryClient.Context.Operation.Id fest.Don't set telemetryClient.Context.Operation.Id. Diese globale Einstellung führt zu falschen Korrelationen, wenn viele Funktionen gleichzeitig ausgeführt werden.This global setting causes incorrect correlation when many functions are running simultaneously. Erstellen Sie stattdessen eine neue Telemetrieinstanz (DependencyTelemetry, EventTelemetry), und ändern Sie die Context-Eigenschaft.Instead, create a new telemetry instance (DependencyTelemetry, EventTelemetry) and modify its Context property. Übergeben Sie in der Telemetrie-Instanz dann die entsprechende Track-Methode TelemetryClient (TrackDependency(), TrackEvent()).Then pass in the telemetry instance to the corresponding Track method on TelemetryClient (TrackDependency(), TrackEvent()). Durch diese Methode wird sichergestellt, dass die Telemetrie die richtigen Korrelationsdetails für den aktuellen Funktionsaufruf enthält.This method ensures that the telemetry has the correct correlation details for the current function invocation.

Protokollieren von benutzerdefinierter Telemetrie in JavaScript-FunktionenLog custom telemetry in JavaScript functions

Das Application Insights Node.js SDK ist derzeit als Betaversion verfügbar.The Application Insights Node.js SDK is currently in beta. Hier ist Beispielcode angegeben, mit dem benutzerdefinierte Telemetriedaten an Application Insights gesendet werden:Here's some sample code that sends custom telemetry to Application Insights:

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();
};

Mit dem Parameter tagOverrides wird die operation_Id auf die Aufrufkennung der Funktion festgelegt.The tagOverrides parameter sets the operation_Id to the function's invocation ID. Mithilfe dieser Einstellung können Sie die gesamte automatisch generierte und benutzerdefinierte Telemetrie für einen bestimmten Funktionsaufruf korrelieren.This setting enables you to correlate all of the automatically generated and custom telemetry for a given function invocation.

AbhängigkeitenDependencies

Abhängigkeiten der Funktion von anderen Diensten werden nicht automatisch angezeigt.Dependencies that the function has to other services don't show up automatically. Sie können benutzerdefinierten Code schreiben, um die Abhängigkeiten anzuzeigen.You can write custom code to show the dependencies. Dies wird beispielsweise im Beispielcode im Abschnitt zu den benutzerdefinierten C#-Telemetriedaten veranschaulicht.For examples, see the sample code in the C# custom telemetry section. Der Beispielcode ergibt in Application Insights eine Anwendungszuordnung, die wie die folgende Abbildung aussieht:The sample code results in an application map in Application Insights that looks like the following image:

Anwendungszuordnung

Melden von ProblemenReport issues

Erstellen Sie auf GitHub einen Problemeintrag, um ein Problem mit der Application Insights-Integration in Functions zu melden oder einen Vorschlag oder eine Anfrage zu erstellen.To report an issue with Application Insights integration in Functions, or to make a suggestion or request, create an issue in GitHub.

StreamingprotokolleStreaming Logs

Beim Entwickeln einer Anwendung ist es häufig nützlich, Protokollinformationen nahezu in Echtzeit zu sehen.While developing an application, it is often useful to see logging information in near-real time. Sie können entweder im Azure-Portal oder in einer Befehlszeilensitzung auf Ihrem lokalen Computer einen Stream von Protokolldateien anzeigen, die von Ihren Funktionen generiert werden.You can view a stream of log files being generated by your functions either in the Azure portal or in a command-line session on your local computer.

Dies entspricht der Ausgabe, die beim Debuggen Ihrer Funktionen bei der lokalen Entwicklung zu sehen ist.This is equivalent to the output seen when you debug your functions during local development. Weitere Informationen finden Sie unter Vorgehensweise: Streaming von Protokollen.For more information, see How to stream logs.

Hinweis

Streamingprotokolle unterstützen nur eine einzige Instanz des Azure Functions-Hosts.Streaming logs support only a single instance of the Functions host. Wenn Ihre Funktion auf mehrere Instanzen skaliert wird, werden Daten aus anderen Instanzen nicht im Protokollstream angezeigt.When your function is scaled to multiple instances, data from other instances are not shown in the log stream. Der Live Metrics Stream in Application Insights unterstützt mehrere Instanzen.The Live Metrics Stream in Application Insights does supported multiple instances. Obwohl auch in nahezu Echtzeit basiert die Streamanalyse auch auf Stichprobendaten.While also in near real time, streaming analytics are also based on sampled data.

PortalPortal

Um Streamingprotokolle im Portal anzuzeigen, wählen Sie in Ihrer Funktions-App die Registerkarte Plattformfeatures aus.To view streaming logs in the portal, select the Platform features tab in your function app. Klicken Sie unter Überwachung auf Protokollstreaming.Then, under Monitoring, choose Log streaming.

Aktivieren von Streamingprotokollen im Portal

Dadurch wird Ihre App mit dem Protokollstreamingdienst verbunden, woraufhin Anwendungsprotokolle im Fenster angezeigt werden.This connects your app to the log streaming service and application logs are displayed in the window. Sie können zwischen Anwendungsprotokolle und Webserverprotokolle umschalten.You can toggle between Application logs and Web server logs.

Anzeigen von Streamingprotokollen im Portal

Azure-BefehlszeilenschnittstelleAzure CLI

Sie können Streamingprotokolle über die Azure-Befehlszeilenschnittstelle (CLI) aktivieren.You can enable streaming logs by using the Azure Command Line Interface (CLI). Verwenden Sie für die Azure CLI die folgenden Befehle, um sich anzumelden, Ihr Abonnement auszuwählen und Protokolldateien zu streamen:For the Azure CLI, 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

Sie können Streamingprotokolle über Azure PowerShell aktivieren.You can enable streaming logs by using Azure PowerShell. Verwenden Sie für PowerShell die folgenden Befehle, um Ihr Azure-Konto hinzuzufügen, Ihr Abonnement auszuwählen und Protokolldateien zu streamen: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

Deaktivieren der integrierten ProtokollierungDisable built-in logging

Wenn Sie Application Insights aktivieren, deaktivieren Sie die integrierte Protokollierung mit Verwendung von Azure Storage.When you enable Application Insights, disable the built-in logging that uses Azure Storage. Die integrierte Protokollierung ist für Tests mit einfachen Workloads hilfreich, aber sie ist nicht für die Nutzung in der Produktion mit hohen Auslastungen bestimmt.The built-in logging is useful for testing with light workloads, but isn't intended for high-load production use. Für die Produktionsüberwachung empfehlen wir die Verwendung von Application Insights.For production monitoring, we recommend Application Insights. Bei Nutzung der integrierten Protokollierung in der Produktion kann der Protokollierungsdatensatz aufgrund einer Drosselung von Azure Storage ggf. unvollständig sein.If built-in logging is used in production, the logging record might be incomplete because of throttling on Azure Storage.

Löschen Sie die App-Einstellung AzureWebJobsDashboard, um die integrierte Protokollierung zu deaktivieren.To disable built-in logging, delete the AzureWebJobsDashboard app setting. Informationen zum Löschen von App-Einstellungen im Azure-Portal finden Sie im Abschnitt Anwendungseinstellungen unter Verwalten einer Funktionen-App im Azure-Portal.For information about how to delete app settings in the Azure portal, see the Application settings section of How to manage a function app. Stellen Sie vor dem Löschen der App-Einstellung sicher, dass sie nicht für vorhandene Funktionen in derselben Funktions-App für Azure Storage-Trigger oder -Bindungen verwendet wird.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.

Nächste SchritteNext steps

Weitere Informationen finden Sie in den folgenden Ressourcen:For more information, see the following resources: