host.json-Referenz für Azure Functions 2.x oder höher
Die Metadatendatei „host.json“ enthält Konfigurationsoptionen, die sich auf alle Funktionen einer Funktions-App-Instanz auswirken. In diesem Artikel werden die Einstellungen aufgelistet, die ab Version 2.x der Azure Functions-Laufzeit verfügbar sind.
Hinweis
Dieser Artikel gilt für Azure Functions 2.x oder höher. Eine Referenz für „host.json“ in Functions 1.x finden Sie unter host.json-Referenz für Azure Functions 1.x.
Andere Konfigurationsoptionen für Funktions-Apps werden abhängig davon verwaltet, wo die Funktions-App ausgeführt wird:
- In Azure bereitgestellt: in den Anwendungseinstellungen
- Auf Ihrem lokalen Computer: in der Datei local.settings.json.
Konfigurationen in „host.json“, die mit Bindungen im Zusammenhang stehen, werden gleichmäßig auf alle Funktionen in der Funktions-App angewendet.
Mithilfe der Anwendungseinstellungen können Sie auch Einstellungen pro Umgebung außer Kraft setzen oder anwenden.
host.json-Beispieldatei
In der folgenden Beispieldatei host.json für Version 2.x und höher sind alle möglichen Optionen angegeben (mit Ausnahme der Optionen, die nur für die interne Verwendung vorgesehen sind).
{
"version": "2.0",
"aggregator": {
"batchSize": 1000,
"flushTimeout": "00:00:30"
},
"concurrency": {
"dynamicConcurrencyEnabled": true,
"snapshotPersistenceEnabled": true
},
"extensions": {
"blobs": {},
"cosmosDb": {},
"durableTask": {},
"eventHubs": {},
"http": {},
"queues": {},
"sendGrid": {},
"serviceBus": {}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
},
"functions": [ "QueueProcessor", "GitHubWebHook" ],
"functionTimeout": "00:05:00",
"healthMonitor": {
"enabled": true,
"healthCheckInterval": "00:00:10",
"healthCheckWindow": "00:02:00",
"healthCheckThreshold": 6,
"counterThreshold": 0.80
},
"logging": {
"fileLoggingMode": "debugOnly",
"logLevel": {
"Function.MyFunction": "Information",
"default": "None"
},
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"maxTelemetryItemsPerSecond" : 20,
"evaluationInterval": "01:00:00",
"initialSamplingPercentage": 100.0,
"samplingPercentageIncreaseTimeout" : "00:00:01",
"samplingPercentageDecreaseTimeout" : "00:00:01",
"minSamplingPercentage": 0.1,
"maxSamplingPercentage": 100.0,
"movingAverageRatio": 1.0,
"excludedTypes" : "Dependency;Event",
"includedTypes" : "PageView;Trace"
},
"dependencyTrackingOptions": {
"enableSqlCommandTextInstrumentation": true
},
"enableLiveMetrics": true,
"enableDependencyTracking": true,
"enablePerformanceCountersCollection": true,
"httpAutoCollectionOptions": {
"enableHttpTriggerExtendedInfoCollection": true,
"enableW3CDistributedTracing": true,
"enableResponseHeaderInjection": true
},
"snapshotConfiguration": {
"agentEndpoint": null,
"captureSnapshotMemoryWeight": 0.5,
"failedRequestLimit": 3,
"handleUntrackedExceptions": true,
"isEnabled": true,
"isEnabledInDeveloperMode": false,
"isEnabledWhenProfiling": true,
"isExceptionSnappointsEnabled": false,
"isLowPrioritySnapshotUploader": true,
"maximumCollectionPlanSize": 50,
"maximumSnapshotsRequired": 3,
"problemCounterResetInterval": "24:00:00",
"provideAnonymousTelemetry": true,
"reconnectInterval": "00:15:00",
"shadowCopyFolder": null,
"shareUploaderProcess": true,
"snapshotInLowPriorityThread": true,
"snapshotsPerDayLimit": 30,
"snapshotsPerTenMinutesLimit": 1,
"tempFolder": null,
"thresholdForSnapshotting": 1,
"uploaderProxy": null
}
}
},
"managedDependency": {
"enabled": true
},
"singleton": {
"lockPeriod": "00:00:15",
"listenerLockPeriod": "00:01:00",
"listenerLockRecoveryPollingInterval": "00:01:00",
"lockAcquisitionTimeout": "00:01:00",
"lockAcquisitionPollingInterval": "00:00:03"
},
"telemetryMode": "OpenTelemetry",
"watchDirectories": [ "Shared", "Test" ],
"watchFiles": [ "myFile.txt" ]
}
In den folgenden Abschnitten dieses Artikels werden die einzelnen allgemeinen Eigenschaften erläutert. Alle Eigenschaften sind optional, sofern nicht anders angegeben.
aggregator
Gibt an, wie viele Funktionsaufrufe aggregiert werden, wenn Metriken für Application Insights berechnet werden.
{
"aggregator": {
"batchSize": 1000,
"flushTimeout": "00:00:30"
}
}
Eigenschaft | Standard | Beschreibung |
---|---|---|
batchSize | 1000 | Maximale Anzahl der zu aggregierenden Anforderungen. |
flushTimeout | 00:00:30 | Maximal zu aggregierender Zeitraum. |
Funktionsaufrufe werden aggregiert, wenn der erste der beiden Grenzwerte erreicht wird.
applicationInsights
Diese Einstellung ist ein untergeordnetes Element von logging.
Sie steuert Optionen für Application Insights, einschließlich Stichprobenoptionen.
Die vollständige JSON-Struktur finden Sie in der obigen Beispieldatei „host.json“.
Hinweis
Protokollsampling kann dazu führen, dass einige Ausführungen möglicherweise nicht auf dem Application Insights-Blatt für Überwachen angezeigt werden. Fügen Sie excludedTypes: "Request"
zum Wert samplingSettings
hinzu, um die Protokollstichprobenentnahme zu vermeiden.
Eigenschaft | Standard | BESCHREIBUNG |
---|---|---|
samplingSettings | – | Siehe applicationInsights.samplingSettings. |
dependencyTrackingOptions | Nicht zutreffend | Weitere Informationen finden Sie unter applicationInsights.dependencyTrackingOptions. |
enableLiveMetrics | true | Aktiviert die Sammlung mit Livemetriken. |
enableDependencyTracking | true | Aktiviert die Abhängigkeitsüberwachung. |
enablePerformanceCountersCollection | true | Aktiviert die Sammlung mit Kudu-Leistungsindikatoren. |
liveMetricsInitializationDelay | 00:00:15 | Nur zur internen Verwendung. |
httpAutoCollectionOptions | – | Siehe applicationInsights.httpAutoCollectionOptions. |
snapshotConfiguration | – | Siehe applicationInsights.snapshotConfiguration. |
applicationInsights.samplingSettings
Weitere Informationen zu diesen Einstellungen finden Sie unter Erstellen von Stichproben in Application Insights.
Eigenschaft | Standard | BESCHREIBUNG |
---|---|---|
isEnabled | true | Aktiviert oder deaktiviert die Stichprobenentnahme. |
maxTelemetryItemsPerSecond | 20 | Die Zielanzahl der Telemetrieelemente, die pro Sekunde auf den einzelnen Serverhosts protokolliert werden. Reduzieren Sie diesen Wert, wenn Ihre App auf vielen Hosts ausgeführt wird, um Ihre Zielgeschwindigkeit für den gesamten Datenverkehr einzuhalten. |
evaluationInterval | 01:00:00 | Das Intervall, in dem die aktuelle Telemetrierate erneut ausgewertet wird. Die Auswertung wird als gleitender Durchschnitt ausgeführt. Wenn bei Ihrer Telemetrie plötzliche Spitzen auftreten, sollten Sie dieses Intervall verkürzen. |
initialSamplingPercentage | 100.0 | Der anfängliche Prozentsatz für die Stichprobenentnahme, der zu Beginn der Stichprobenentnahme angewendet wird, um den Prozentsatz dynamisch zu variieren. Reduzieren Sie den Wert nicht, solange Sie debuggen. |
samplingPercentageIncreaseTimeout | 00:00:01 | Wenn der Prozentwert für die Stichprobenentnahme geändert wird, bestimmt diese Eigenschaft, wie schnell Application Insights den Prozentsatz für die Stichprobenentnahme danach erhöhen darf, um mehr Daten zu erfassen. |
samplingPercentageDecreaseTimeout | 00:00:01 | Wenn der Prozentwert für die Stichprobenentnahme geändert wird, bestimmt diese Eigenschaft, wie schnell Application Insights den Prozentsatz für die Stichprobenentnahme danach reduzieren darf, um weniger Daten zu erfassen. |
minSamplingPercentage | 0,1 | Diese Eigenschaft bestimmt den mindestens zulässigen Wert für den variierenden Prozentsatz der Stichprobenentnahme. |
maxSamplingPercentage | 100.0 | Diese Eigenschaft bestimmt den maximal zulässigen Wert für den variierenden Prozentsatz der Stichprobenentnahme. |
movingAverageRatio | 1.0 | Die Gewichtung, die bei der Berechnung des gleitenden Durchschnitts dem jüngsten Wert beigemessen wird. Verwenden Sie einen Wert kleiner oder gleich 1. Bei einem kleineren Wert reagiert der Algorithmus langsamer auf plötzliche Veränderungen. |
excludedTypes | NULL | Eine durch Semikolons getrennte Liste von Typen, für die keine Stichproben erstellt werden sollen. Anerkannte Typen sind Dependency , Event , Exception , PageView , Request und Trace . Alle Instanzen der angegebenen Typen werden übertragen. Für nicht angegebene Typen werden Stichproben erstellt. |
includedTypes | NULL | Eine durch Semikolons getrennte Liste von Typen, für die Stichproben erstellt werden sollen. Eine leere Liste gibt an, dass Stichproben für alle Typen erstellt werden sollen. In excludedTypes aufgeführte Typen überschreiben die hier aufgeführten Typen. Anerkannte Typen sind Dependency , Event , Exception , PageView , Request und Trace . Für alle Instanzen der angegebenen Typen werden Stichproben erstellt. Die nicht angegebenen und nicht implizierten Typen werden ohne Stichprobenentnahme übertragen. |
applicationInsights.httpAutoCollectionOptions
Eigenschaft | Standard | BESCHREIBUNG |
---|---|---|
enableHttpTriggerExtendedInfoCollection | true | Diese Eigenschaft aktiviert oder deaktiviert erweiterte HTTP-Anforderungsinformationen für HTTP-Trigger: eingehende Anforderungskorrelationsheader, Unterstützung für mehrere Instrumentierungsschlüssel, HTTP-Methoden, Pfade und Antworten. |
enableW3CDistributedTracing | true | Diese Eigenschaft aktiviert oder deaktiviert die Unterstützung des W3C-Protokolls für die verteilte Ablaufverfolgung (und aktiviert das alte Korrelationsschema). Sie ist standardmäßig aktiviert, wenn enableHttpTriggerExtendedInfoCollection den Wert TRUE aufweist. Wenn enableHttpTriggerExtendedInfoCollection den Wert FALSE aufweist, gilt dieses Flag nur für ausgehende Anforderungen, nicht für eingehende Anforderungen. |
enableResponseHeaderInjection | true | Diese Eigenschaft aktiviert oder deaktiviert die Injektion von Korrelationsheadern mit mehreren Komponenten in Antworten. Wenn die Injektion aktiviert wird, kann Application Insights eine Anwendungszuordnung erstellen, wenn mehrere Instrumentierungsschlüssel verwendet werden. Sie ist standardmäßig aktiviert, wenn enableHttpTriggerExtendedInfoCollection den Wert TRUE aufweist. Diese Einstellung ist nicht gültig, wenn enableHttpTriggerExtendedInfoCollection den Wert FALSE aufweist. |
applicationInsights.dependencyTrackingOptions
Eigenschaft | Standard | BESCHREIBUNG |
---|---|---|
enableSqlCommandTextInstrumentation | false | Aktiviert die Sammlung des vollständigen Texts von SQL-Abfragen. Diese Option ist standardmäßig deaktiviert. Weitere Informationen zum Sammeln von SQL-Abfragetext finden Sie unter Erweiterte SQL-Nachverfolgung zum Abrufen einer vollständigen SQL-Abfrage. |
applicationInsights.snapshotConfiguration
Weitere Informationen zu Momentaufnahmen finden Sie unter Debugmomentaufnahmen von Ausnahmen in .NET-Apps und Behandeln von Problemen beim Aktivieren des Application Insights-Momentaufnahmedebuggers oder Anzeigen von Momentaufnahmen.
Eigenschaft | Standard | BESCHREIBUNG |
---|---|---|
agentEndpoint | NULL | Der Endpunkt wird zum Herstellen einer Verbindung mit dem Application Insights-Momentaufnahmedebuggerdienst verwendet. Wenn der Wert NULL vorliegt, wird ein Standardendpunkt verwendet. |
captureSnapshotMemoryWeight | 0.5 | Die Gewichtung der Größe des aktuellen Prozessarbeitsspeichers für die Überprüfung, ob ausreichend Arbeitsspeicher zum Erstellen einer Momentaufnahme verfügbar ist. Es wird ein Wert erwartet, der größer als 0 (null) und ein echter Bruch ist (0 < CaptureSnapshotMemoryWeight < 1). |
failedRequestLimit | 3 | Der Schwellenwert für die Anzahl fehlgeschlagener Anforderungen von Momentaufnahmen, ab der der Telemetrieprozessor deaktiviert wird. |
handleUntrackedExceptions | true | Diese Eigenschaft aktiviert oder deaktiviert die Nachverfolgung von Ausnahmen, die nicht von der Application Insights-Telemetrie nachverfolgt werden. |
isEnabled | true | Diese Eigenschaft aktiviert oder deaktiviert die Erfassung von Momentaufnahmen. |
isEnabledInDeveloperMode | false | Diese Eigenschaft aktiviert oder deaktiviert die Erfassung von Momentaufnahmen im Entwicklermodus. |
isEnabledWhenProfiling | true | Diese Eigenschaft aktiviert oder deaktiviert die Erstellung von Momentaufnahmen, selbst wenn eine ausführliche Profilerstellungssitzung von Application Insights Profiler erfasst wird. |
isExceptionSnappointsEnabled | false | Diese Eigenschaft aktiviert oder deaktiviert die Filterung von Ausnahmen. |
isLowPrioritySnapshotUploader | true | Diese Eigenschaft bestimmt, ob der SnapshotUploader-Prozess mit einer niedrigeren Priorität als normal ausgeführt werden soll. |
maximumCollectionPlanSize | 50 | Diese Eigenschaft gibt die maximale Anzahl von Problemen von 1 bis 9.999 an, die gleichzeitig nachverfolgt werden können. |
maximumSnapshotsRequired | 3 | Diese Eigenschaft gibt die maximale Anzahl erfasster Momentaufnahmen für ein einzelnes Problem von 1 bis 999 an. Sie können ein Problem als individuelle throw-Anweisung in Ihrer Anwendung betrachten. Sobald die Anzahl der erfassten Momentaufnahmen für ein Problem diesen Wert erreicht, werden keine weiteren Momentaufnahmen für das Problem erfasst, bis der Problemzähler zurückgesetzt (siehe problemCounterResetInterval ) und der thresholdForSnapshotting -Schwellenwert erneut erreicht wird. |
problemCounterResetInterval | 24:00:00 | Diese Eigenschaft gibt an, wie oft die Problemzähler in einem Zeitraum von 1 Minute bis 7 Tage zurückgesetzt werden. Sobald dieses Intervall erreicht wird, werden alle Problemzähler auf 0 (null) gesetzt. Vorhandene Probleme, die den Schwellenwert für die Momentaufnahmenerstellung bereits erreicht haben, aber noch nicht die Anzahl der Momentaufnahmen in maximumSnapshotsRequired generiert haben, sind weiterhin aktiv. |
provideAnonymousTelemetry | true | Diese Eigenschaft bestimmt, ob anonyme Nutzungs- und Fehlertelemetriedaten an Microsoft gesendet werden. Diese Telemetrie kann verwendet werden, wenn Sie Microsoft für die Behandlung von Problemen mit dem Momentaufnahmedebugger kontaktieren. Diese Daten werden auch für die Überwachung von Nutzungsmustern verwendet. |
reconnectInterval | 00:15:00 | Diese Eigenschaft gibt an, wie oft die Verbindung zum Endpunkt des Momentaufnahmedebuggers wiederhergestellt wird. Das zulässige Intervall liegt zwischen 1 Minute und 1 Tag. |
shadowCopyFolder | NULL | Diese Eigenschaft gibt den Ordner für Schattenkopien von Binärdateien an. Wenn sie nicht festgelegt wird, werden die folgenden Umgebungsvariablen der Reihe nach versucht: Fabric_Folder_App_Temp, LOCALAPPDATA, APPDATA, TEMP. |
shareUploaderProcess | true | Wenn diese Eigenschaft den Wert TRUE aufweist, werden Momentaufnahmen für mehrere Apps mit dem gleichen InstrumentationKey-Wert von einer SnapshotUploader-Instanz erfasst und hochgeladen. Wenn der Wert FALSE vorliegt, wird eine eindeutige SnapshotUploader-Instanz für jedes Tupel (ProcessName, InstrumentationKey) verwendet. |
snapshotInLowPriorityThread | true | Diese Eigenschaft bestimmt, ob Momentaufnahmen in einem Thread mit niedriger E/A-Priorität verarbeitet werden. Das Erstellen einer Momentaufnahme ist ein schneller Vorgang, aber um eine Momentaufnahme in den Momentaufnahmedebuggerdienst hochzuladen, muss sie erst als Minidump auf den Datenträger geschrieben werden. Dies geschieht im SnapshotUploader-Prozess. Wenn TRUE für diesen Wert festgelegt wird, wird eine niedrige E/A-Priorität zum Schreiben des Minidumps verwendet, sodass der Prozess nicht mit Ihrer Anwendung um Ressourcen konkurriert. Wenn FALSE für diesen Wert festgelegt wird, erfolgt die Erstellung des Minidumps schneller, jedoch wird Ihre Anwendung verlangsamt. |
snapshotsPerDayLimit | 30 | Diese Eigenschaft legt die maximal zulässige Anzahl von Momentaufnahmen pro Tag (24 Stunden) fest. Dieser Schwellenwert wird auch für den Application Insights-Dienst festgelegt. Die Uploads sind pro Anwendung auf 50 pro Tag beschränkt (d. h. pro Instrumentierungsschlüssel). Mit diesem Wert wird verhindert, dass zusätzliche Momentaufnahmen erstellt werden, die letztendlich während des Uploads abgelehnt werden. Wenn der Wert „0“ (null) festgelegt wird, wird der Schwellenwert vollständig aufgehoben, was nicht empfohlen wird. |
snapshotsPerTenMinutesLimit | 1 | Diese Eigenschaft legt die maximal zulässige Anzahl von Momentaufnahmen für einen Zeitraum von 10 Minuten fest. Obwohl es für diesen Wert keine Obergrenze gibt, sollten Sie ihn für Produktionsworkloads nur mit Bedacht erhöhen, da er sich auf die Leistung Ihrer Anwendung auswirken kann. Zwar ist die Erstellung einer Momentaufnahme ein schneller Prozess, jedoch ist das Erstellen eines Minidumps des Snapshots und Hochladen in den Momentaufnahmedebuggerdienst ein deutlich langsamerer Vorgang, der mit Ihrer Anwendung um Ressourcen konkurriert (sowohl CPU- als auch E/A-Ressourcen). |
tempFolder | NULL | Diese Eigenschaft legt den Ordner fest, in den Minidumps und Uploaderprotokolldateien geschrieben werden. Wenn kein Wert festgelegt wird, wird %TEMP%\Dumps verwendet. |
thresholdForSnapshotting | 1 | Diese Eigenschaft gibt an, wie viele Ausnahmen Application Insights ermitteln muss, bevor Momentaufnahmen angefordert werden. |
uploaderProxy | NULL | Diese Eigenschaft überschreibt den Proxyserver, der vom SnapshotUploader-Prozess verwendet wird. Sie müssen diese Einstellung möglicherweise verwenden, wenn Ihre Anwendung eine Internetverbindung über einen Proxyserver herstellt. Snapshot Collector wird im Prozess Ihrer Anwendung ausgeführt und verwendet die gleichen Proxyeinstellungen. Der SnapshotUploader-Prozess wird jedoch separat ausgeführt, und Sie müssen den Proxyserver möglicherweise manuell konfigurieren. Wenn diese Eigenschaft den Wert NULL aufweist, versucht Snapshot Collector die Proxyadresse automatisch zu ermitteln, indem System.Net.WebRequest.DefaultWebProxy untersucht und der Wert an den Snapshot Uploader übergeben wird. Wenn nicht der Wert NULL vorliegt, wird die automatische Ermittlung nicht verwendet und der hier angegebene Proxyserver wird im SnapshotUploader-Prozess verwendet. |
Blobs
Die Konfigurationseinstellungen finden Sie in Storage-Blobtrigger und Bindungen.
console
Diese Einstellung ist ein untergeordnetes Element von logging. Sie steuert die Konsolenprotokollierung, wenn nicht im Debugmodus.
{
"logging": {
...
"console": {
"isEnabled": false,
"DisableColors": true
},
...
}
}
Eigenschaft | Standard | BESCHREIBUNG |
---|---|---|
DisableColors | false | Unterdrücken der Protokollformatierung in den Containerprotokollen unter Linux. Legen Sie diese Einstellung auf TRUE fest, wenn bei der Ausführung unter Linux unerwünschte ANSI-Steuerzeichen in den Containerprotokollen angezeigt werden. |
isEnabled | false | Aktiviert oder deaktiviert die Konsolenprotokollierung. |
Azure Cosmos DB
Konfigurationseinstellungen finden Sie unter Azure Cosmos DB-Trigger und -Bindungen.
customHandler
Konfigurationseinstellungen für einen benutzerdefinierten Handler. Weitere Informationen finden Sie unter Benutzerdefinierte Azure Functions-Handler.
"customHandler": {
"description": {
"defaultExecutablePath": "server",
"workingDirectory": "handler",
"arguments": [ "--port", "%FUNCTIONS_CUSTOMHANDLER_PORT%" ]
},
"enableForwardingHttpRequest": false
}
Eigenschaft | Standard | BESCHREIBUNG |
---|---|---|
defaultExecutablePath | – | Die ausführbare Datei, die als benutzerdefinierter Handlerprozess gestartet wird. Dies ist eine erforderliche Einstellung bei der Verwendung von benutzerdefinierten Handlern, und der zugehörige Wert ist relativ zum Stamm der Funktions-App. |
workingDirectory | Stamm der Funktions-App | Das Arbeitsverzeichnis, in dem der benutzerdefinierte Handlerprozess gestartet werden soll. Es handelt sich um eine optionale Einstellung, und ihr Wert ist relativ zum Stamm der Funktions-App. |
Argumente | – | Ein Array von Befehlszeilenargumenten, die an den benutzerdefinierten Handlerprozess übergeben werden sollen. |
enableForwardingHttpRequest | false | Wenn diese Option festgelegt ist, werden alle Funktionen, die nur aus einem HTTP-Trigger und einer HTTP-Ausgabe bestehen, an die ursprüngliche HTTP-Anforderung weitergeleitet, anstatt an die Anforderungsnutzlast des benutzerdefinierten Handlers. |
durableTask
Die Konfigurationseinstellung finden Sie in Bindungen für Durable Functions.
concurrency
Aktiviert dynamische Parallelität für bestimmte Bindungen in Ihrer Funktions-App. Weitere Informationen finden Sie unter Dynamische Parallelität.
{
"concurrency": {
"dynamicConcurrencyEnabled": true,
"snapshotPersistenceEnabled": true
}
}
Eigenschaft | Standard | BESCHREIBUNG |
---|---|---|
dynamicConcurrencyEnabled | false | Aktiviert dynamisches Parallelitätsverhalten für alle Trigger, die von diesem Feature unterstützt werden. Diese Option ist standardmäßig deaktiviert. |
snapshotPersistenceEnabled | true | Die gelernten Parallelitätswerte werden in regelmäßigen Abständen gespeichert. Somit können die neuen Instanzen mit diesen Werten beginnen, anstatt bei 1 zu starten und das Lernen wiederholen zu müssen. |
eventHub
Die Konfigurationseinstellung finden Sie in Event Hub-Trigger und -Bindungen.
Erweiterungen
Eigenschaft, die ein Objekt zurückgibt, das alle die bindungsspezifischen-Einstellungen enthält, z.B. http und eventhub.
extensionBundle
Mit Erweiterungsbündeln können Sie kompatible Bindungserweiterungen von Azure Functions zu Ihrer Funktions-App hinzufügen. Weitere Informationen finden Sie unter Erweiterungsbündel für die lokale Entwicklung.
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
In extensionBundle
sind die folgenden Eigenschaften verfügbar:
Eigenschaft | BESCHREIBUNG |
---|---|
id |
Der Namespace für Microsoft Azure Functions-Erweiterungsbündel. |
version |
Der Versionsbereich des zu installierenden Pakets. Die Functions Runtime wählt immer die zulässige Höchstversion aus, die durch den Versionsbereich oder das Intervall definiert ist. Beispielsweise sind bei einem version -Wertebereich von [4.0.0, 5.0.0) alle Paketversionen von 4.0.0 bis ausschließlich 5.0.0 zulässig. Weitere Informationen finden Sie im Abschnitt zur Intervallnotation zum Angeben von Versionsbereichen. |
functions
Eine Liste der Funktionen, die vom Auftragshost ausgeführt werden. Ein leeres Array bedeutet, dass alle Funktionen ausgeführt werden. Nur bei lokaler Ausführung für die Verwendung vorgesehen. In Funktions-Apps in Azure sollten Sie anstelle dieser Einstellung die in How to disable functions in Azure Functions (Deaktivieren von Funktionen in Azure Functions) aufgeführten Schritte ausführen, um bestimmte Funktionen zu deaktivieren.
{
"functions": [ "QueueProcessor", "GitHubWebHook" ]
}
functionTimeout
Gibt die Timeoutdauer für alle Funktionsausführungen an. Die Angabe erfolgt im TimeSpan-Zeichenfolgenformat.
Plantyp | Standard (Min.) | Maximum (Min.) |
---|---|---|
Nutzung | 5 | 10 |
Premium1 | 30 | -1 (unbegrenzt)2 |
Dediziert (App Service) | 30 | -1 (unbegrenzt)2 |
1 Die Premium-Planausführung wird nur für 60 Minuten garantiert, ist aber eigentlich unbegrenzt.
2 Der Wert -1
gibt eine unbegrenzte Ausführung an, es wird jedoch empfohlen, eine feste Obergrenze zu verwenden.
{
"functionTimeout": "00:05:00"
}
healthMonitor
Konfigurationseinstellungen für Host Health Monitor (Überwachung der Hostintegrität).
{
"healthMonitor": {
"enabled": true,
"healthCheckInterval": "00:00:10",
"healthCheckWindow": "00:02:00",
"healthCheckThreshold": 6,
"counterThreshold": 0.80
}
}
Eigenschaft | Standard | BESCHREIBUNG |
---|---|---|
enabled | true | Gibt an, ob die Funktion aktiviert ist. |
healthCheckInterval | 10 Sekunden | Das Zeitintervall zwischen den regelmäßigen Integritätsüberprüfungen im Hintergrund. |
healthCheckWindow | 2 Minuten | Ein variables Zeitfenster, das in Zusammenhang mit der healthCheckThreshold -Einstellung verwendet wird. |
healthCheckThreshold | 6 | Maximale Anzahl von fehlerhaften Integritätsüberprüfungen, bevor ein Neustart des Hosts initiiert wird. |
counterThreshold | 0.80 | Der Schwellenwert, an dem ein Leistungsindikator als fehlerhaft betrachtet wird. |
http
Die Konfigurationseinstellung finden Sie in HTTP-Trigger und -Bindungen.
logging
Steuert das Protokollierungsverhalten der Funktions-App, einschließlich Application Insights.
"logging": {
"fileLoggingMode": "debugOnly",
"logLevel": {
"Function.MyFunction": "Information",
"default": "None"
},
"console": {
...
},
"applicationInsights": {
...
}
}
Eigenschaft | Standard | BESCHREIBUNG |
---|---|---|
fileLoggingMode | debugOnly | Bestimmt das Dateiprotokollierungsverhalten bei der Ausführung in Azure. Verfügbar sind die Optionen never , always und debugOnly . Diese Einstellung wird bei lokaler Ausführung nicht verwendet. Wenn möglich, sollten Sie Application Insights beim Debuggen Ihrer Funktionen in Azure verwenden. Die Verwendung von always wirkt sich negativ auf das Kaltstartverhalten und den Datendurchsatz Ihrer App aus. Die Standardeinstellung debugOnly generiert beim Debuggen mithilfe des Azure-Portal Protokolldateien. |
logLevel | – | Objekt, das das Filtern der Protokollkategorie nach Funktionen in der App definiert. Mit dieser Einstellung können Sie die Protokollierung nach bestimmten Funktionen filtern. Weitere Informationen finden Sie unter Konfigurieren von Protokollierungsgraden. |
console | – | Die Konsolenprotokollierungseinstellung. |
applicationInsights | – | Die applicationInsights-Einstellung. |
managedDependency
Verwaltete Abhängigkeit ist ein Vorschaufeature, das derzeit nur mit PowerShell-basierten Funktionen unterstützt wird. Sie ermöglicht, dass Abhängigkeiten automatisch vom Dienst verwaltet werden können. Wenn die enabled
-Eigenschaft auf true
festgelegt ist, wird die Datei requirements.psd1
verarbeitet. Abhängigkeiten werden aktualisiert, wenn Nebenversionen veröffentlicht werden. Weitere Informationen finden Sie unter Verwaltete Abhängigkeit im PowerShell-Artikel.
{
"managedDependency": {
"enabled": true
}
}
queues
Die Konfigurationseinstellungen finden Sie in Trigger und Bindungen der Speicherwarteschlange.
sendGrid
Die Konfigurationseinstellung finden Sie in SendGrid-Trigger und -Bindungen.
serviceBus
Die Konfigurationseinstellung finden Sie in Service Bus-Trigger und -Bindungen.
singleton
Konfigurationseinstellungen für das Singleton-Sperrverhalten. Weitere Informationen finden Sie unter GitHub-Problem zur Singleton-Unterstützung.
{
"singleton": {
"lockPeriod": "00:00:15",
"listenerLockPeriod": "00:01:00",
"listenerLockRecoveryPollingInterval": "00:01:00",
"lockAcquisitionTimeout": "00:01:00",
"lockAcquisitionPollingInterval": "00:00:03"
}
}
Eigenschaft | Standard | BESCHREIBUNG |
---|---|---|
lockPeriod | 00:00:15 | Der Zeitraum, für den Sperren auf Funktionsebene gelten. Die Sperren werden automatisch verlängert. |
listenerLockPeriod | 00:01:00 | Der Zeitraum, für den Listenersperren gelten. |
listenerLockRecoveryPollingInterval | 00:01:00 | Das Zeitintervall für die Wiederherstellung der Listenersperre, wenn eine Listenersperre nicht beim Start abgerufen werden konnte. |
lockAcquisitionTimeout | 00:01:00 | Die maximale Zeitspanne, in der die Laufzeit versucht, eine Sperre abzurufen. |
lockAcquisitionPollingInterval | – | Das Intervall zwischen den Versuchen, eine Sperre abzurufen. |
telemetryMode
Dieses Feature befindet sich derzeit in der Vorschau.
Wird verwendet, um die Ausgabe von Protokollen und Ablaufverfolgungen in einem OpenTelemetry-Ausgabeformat auf einen oder mehrere Endpunkte zu aktivieren, die OpenTelemetry unterstützen. Wenn diese Einstellung auf " OpenTelemetry
OpenTelemetry" festgelegt ist, wird die OpenTelemetry-Ausgabe verwendet. Standardmäßig ohne diese Einstellung werden alle Protokolle, Ablaufverfolgungen und Ereignisse mithilfe der Standardausgabe an Application Insights gesendet. Weitere Informationen finden Sie unter Verwenden von OpenTelemetry mit Azure-Funktionen.
version
Dieser Wert gibt die Schemaversion von „host.json“ an. Die Versionszeichenfolge "version": "2.0"
ist erforderlich für Funktions-Apps mit v2 oder höher der Runtime als Ziel. Zwischen v2 und v3 wurden am Schema von „host.json“ keine Änderungen vorgenommen.
watchDirectories
Eine Reihe von Verzeichnissen mit freigegebenem Code, die auf Änderungen überwacht werden sollte. Dadurch wird sichergestellt, dass Änderungen am Code in diesen Verzeichnissen von Ihren Funktionen übernommen werden.
{
"watchDirectories": [ "Shared" ]
}
watchFiles
Ein Array mit einem oder mehreren Namen von Dateien, die auf Änderungen überwacht werden, für die die App neu gestartet werden muss. Dadurch wird sichergestellt, dass Änderungen am Code in diesen Dateien von Ihren Funktionen übernommen werden.
{
"watchFiles": [ "myFile.txt" ]
}
Außerkraftsetzung der Werte in der Datei „host.json“
Es kann Fälle geben, in denen Sie spezifische Einstellungen in einer Datei vom Typ „host.json“ für eine bestimmte Datei konfigurieren oder ändern möchten, ohne die Datei „host.json“ selbst zu ändern. Sie können bestimmte Werte in der Datei „host.json“ außer Kraft setzen, indem Sie einen entsprechenden Wert als Anwendungseinstellung erstellen. Wenn von der Runtime eine Anwendungseinstellung im Format AzureFunctionsJobHost__path__to__setting
ermittelt wird, wird die entsprechende Einstellung in der JSON-Datei „host.json“ unter path.to.setting
außer Kraft gesetzt. Bei der Angabe als Anwendungseinstellung wird der Punkt (.
), mit dem die JSON-Hierarchie angegeben wird, durch einen doppelten Unterstrich (__
) ersetzt.
Angenommen, Sie möchten die Application Insight-Stichprobenentnahme bei der lokalen Ausführung deaktivieren. Wenn Sie die lokale Datei „host.json“ geändert haben, um Application Insights zu deaktivieren, wird diese Änderung unter Umständen während der Bereitstellung an Ihre Produktions-App gepusht. Es ist sicherer, stattdessen die Anwendungseinstellung "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false"
in der Datei local.settings.json
zu erstellen. Dies wird in der folgenden Datei vom Typ local.settings.json
gezeigt, die nicht veröffentlicht wird:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "{storage-account-connection-string}",
"FUNCTIONS_WORKER_RUNTIME": "{language-runtime}",
"AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false"
}
}
Das Überschreiben von Einstellungen der Datei „host.json“ mithilfe von Umgebungsvariablen folgt den ASP.NET Core-Benennungskonventionen. Wenn die Elementstruktur ein Array enthält, sollte der Index des numerischen Arrays als zusätzlicher Elementname in diesem Pfad behandelt werden. Weitere Informationen finden Sie unter Benennung von Umgebungsvariablen.