host.json Referenz für Azure Functions 1.x

Die Metadatendatei host.json enthält Konfigurationsoptionen, die sich auf alle Funktionen einer Funktions-App-Instanz auswirken. In diesem Artikel werden die verfügbaren Einstellungen für die Version 1.x Runtime aufgelistet. Das JSON-Schema finden Sie unter http://json.schemastore.org/host.

Hinweis

Dieser Artikel bewahrt die host.json Referenz für Azure Functions Laufzeit 1.x. Weitere historische Informationen finden Sie im Runtime 1.x Legacy-Referenz. Für die aktuelle host.json siehe host.json Referenz für Azure Functions 2.x und später.

Weitere Konfigurationsoptionen Ihrer Funktions-App werden in den Anwendungseinstellungen verwaltet.

Einige Einstellungen in host.json werden nur bei lokaler Ausführung in der local.settings.json-Datei verwendet.

host.json-Beispieldatei

Für die folgenden host.json-Beispieldateien sind alle möglichen Optionen angegeben.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    },
    "applicationInsights": {
        "sampling": {
          "isEnabled": true,
          "maxTelemetryItemsPerSecond" : 5
        }
    },
    "documentDB": {
        "connectionMode": "Gateway",
        "protocol": "Https",
        "leaseOptions": {
            "leasePrefix": "prefix"
        }
    },
    "eventHub": {
      "maxBatchSize": 64,
      "prefetchCount": 256,
      "batchCheckpointFrequency": 1
    },
    "functions": [ "QueueProcessor", "GitHubWebHook" ],
    "functionTimeout": "00:05:00",
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    },
    "http": {
        "routePrefix": "api",
        "maxOutstandingRequests": 20,
        "maxConcurrentRequests": 10,
        "dynamicThrottlesEnabled": false
    },
    "id": "9f4ea53c5136457d883d685e57164f08",
    "logger": {
        "categoryFilter": {
            "defaultLevel": "Information",
            "categoryLevels": {
                "Host": "Error",
                "Function": "Error",
                "Host.Aggregator": "Information"
            }
        }
    },
    "queues": {
      "maxPollingInterval": 2000,
      "visibilityTimeout" : "00:00:30",
      "batchSize": 16,
      "maxDequeueCount": 5,
      "newBatchThreshold": 8
    },
    "sendGrid": {
        "from": "Contoso Group <admin@contoso.com>"
    },
    "serviceBus": {
      "maxConcurrentCalls": 16,
      "prefetchCount": 100,
      "autoRenewTimeout": "00:05:00",
      "autoComplete": true
    },
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    },
    "tracing": {
      "consoleLevel": "verbose",
      "fileLoggingMode": "debugOnly"
    },
    "watchDirectories": [ "Shared" ],
}

In den folgenden Abschnitten dieses Artikels werden die einzelnen Top-Level-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 Grenzen erreicht ist.

applicationInsights

Steuert das Stichprobenfeature in Application Insights.

{
        "applicationInsights": {
                "sampling": {
                    "isEnabled": true,
                    "maxTelemetryItemsPerSecond" : 5
                }
        }
}
Eigenschaft Standard Beschreibung
isEnabled wahr Aktiviert oder deaktiviert die Stichprobenentnahme.
maxTelemetryItemsPerSecond 5 Der Schwellenwert, bei dem die Stichprobenentnahme beginnt.

DocumentDB

Konfigurationseinstellungen für den Azure Cosmos DB Trigger und Bindungen.

{
    "documentDB": {
        "connectionMode": "Gateway",
        "protocol": "Https",
        "leaseOptions": {
            "leasePrefix": "prefix1"
        }
    }
}
Eigenschaft Standard Beschreibung
Gateway-Modus Tor Der Verbindungsmodus, der von der Funktion beim Herstellen einer Verbindung mit dem Azure Cosmos DB-Dienst verwendet wird. Die Optionen sind Direct und Gateway.
Protokoll HTTPS Das Verbindungsprotokoll, das von der Funktion beim Herstellen einer Verbindung mit dem Azure Cosmos DB-Dienst verwendet wird. Hier finden Sie eine Erläuterung der beiden Modi
leasePrefix n/v Lease-Präfix, das durchgängig für alle Funktionen in einer App verwendet wird.

dauerhafteAufgabe

Konfigurationseinstellungen für Durable Functions.

In Azure Functions Laufzeit 1.x befindet sich der durableTask Abschnitt an der Wurzel der host.json-Datei. Die verfügbaren Einstellungen hängen von der Version der Durable Functions-Erweiterung ab. Für die aktuelle Konfigurationsreferenz siehe Durable Functions host.json Einstellungen.

eventHub

Konfigurationseinstellungen für Event Hub-Trigger und -Bindungen.

Funktionen

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 stattdessen den Schritten in Wie Sie Funktionen in Azure Functions deaktivieren folgen, um bestimmte Funktionen zu deaktivieren, anstatt diese Einstellung zu verwenden.

{
    "functions": [ "QueueProcessor", "GitHubWebHook" ]
}

functionTimeout

Gibt die Timeoutdauer für alle Funktionen an. Bei einem serverlosen Verbrauchsplan liegt der gültige Bereich zwischen 1 Sekunde und 10 Minuten, wobei der Standardwert bei 5 Minuten liegt. In einem App Service-Plan besteht keine allgemeine Einschränkung, und der Standardwert ist NULL (also kein Timeout).

{
    "functionTimeout": "00:05:00"
}

healthMonitor

Konfigurationseinstellungen für Host-Überwachungsprogramm.

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
Eigenschaft Standard Beschreibung
aktiviert wahr 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 gleitendes Zeitfenster, das 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

Konfigurationseinstellungen für HTTP-Trigger und Bindungen.

{
    "http": {
        "routePrefix": "api",
        "maxOutstandingRequests": 200,
        "maxConcurrentRequests": 100,
        "dynamicThrottlesEnabled": true
    }
}
Eigenschaft Standard Beschreibung
dynamicThrottlesEnabled Falsch Bei einer Aktivierung dieser Einstellung überprüft die Pipeline zur Anforderungsverarbeitung regelmäßig Leistungsindikatoren zur Systemleistung wie Verbindungen/Threads/Prozesse/Speicher/CPU usw., und wenn einer dieser Leistungsindikatoren einen integrierten Schwellenwert (80 %) übersteigt, werden Anforderungen mit der Antwort „429 – Ausgelastet“ zurückgewiesen, bis die Leistungsindikatoren wieder ein normales Niveau erreichen.
Maximale gleichzeitige Anfragen unbeschränkt (-1) Die maximale Anzahl von HTTP-Funktionen, die parallel ausgeführt werden. Dadurch können Sie die Parallelität steuern und somit die Verwaltung der Ressourcenverwendung vereinfachen. Beispielsweise könnten Sie über eine HTTP-Funktion verfügen, die viele Systemressourcen (Speicher/CPU/Sockets) verbraucht und daher Probleme verursacht, wenn die Parallelität zu hoch ist. Oder eine Funktion führt ausgehende Anforderungen an einen Dienst eines Drittanbieters durch, und die Rate dieser Aufrufe muss eingeschränkt werden. In diesen Fällen kann eine Drosselung hilfreich sein.
maxOutstandingRequests unbeschränkt (-1) Die maximale Anzahl ausstehender Anforderungen, die zu einem beliebigen Zeitpunkt gespeichert werden. Dieser Grenzwert umfasst Anforderungen in der Warteschlange, deren Ausführung aber noch nicht gestartet wurde, sowie alle laufenden Ausführungen. Alle eingehenden Anforderungen über diesem Grenzwert werden mit der Antwort 429 „Ausgelastet“ zurückgewiesen. Das ermöglicht es dem Aufrufer zeitbasierte Strategien für Wiederholungsversuche einzusetzen, und Sie erhalten damit die Möglichkeit, die maximalen Wartezeiten für Anforderungen zu steuern. Damit wird nur das Queuing gesteuert, das innerhalb des Ausführungspfads des Skripthosts auftritt. Andere Warteschlangen wie die ASP.NET-Anforderungswarteschlange sind weiterhin wirksam und von dieser Einstellung nicht betroffen.
routePrefix api Das Routenpräfix, das für alle Routen gilt. Verwenden Sie eine leere Zeichenfolge, um das Standardpräfix zu entfernen.

id

Die eindeutige ID für einen Jobhost. Dies kann eine GUID in Kleinbuchstaben mit entfernten Bindestrichen sein. Für die lokale Ausführung erforderlich. Wenn Sie Azure verwenden, empfehlen wir, keinen ID-Wert festzulegen. Eine ID wird automatisch in Azure generiert, wenn id weggelassen wird.

Wenn Sie ein Speicherkonto für mehrere Funktions-Apps verwenden, stellen Sie sicher, dass jede Funktions-App einen anderen Wert für id aufweist. Sie können die id-Eigenschaft auslassen oder id für jede Funktions-App manuell auf einen anderen Wert festlegen. Der Zeitgebertrigger verwendet eine Speichersperre, um sicherzustellen, dass nur eine Zeitgeberinstanz vorhanden ist, wenn eine Funktions-App auf mehrere Instanzen horizontal hochskaliert wird. Wenn zwei Funktions-Apps dasselbe id aufweisen und beide einen Timer-Trigger verwenden, wird nur ein Timer ausgeführt.

{
    "id": "9f4ea53c5136457d883d685e57164f08"
}

Protokollierungstool

Steuerelemente, die nach Protokollen filtern, die von einem ILogger-Objekt oder von context.log geschrieben werden.

{
    "logger": {
        "categoryFilter": {
            "defaultLevel": "Information",
            "categoryLevels": {
                "Host": "Error",
                "Function": "Error",
                "Host.Aggregator": "Information"
            }
        }
    }
}
Eigenschaft Standard Beschreibung
Kategorie-Filter n/v Gibt die Filterung nach Kategorie an.
Standardniveau Information Für alle nicht im categoryLevels-Array angegebenen Kategorien, werden Protokolle auf dieser und darüber liegenden Ebenen an Application Insights gesendet.
categoryLevels n/v Ein Array von Kategorien, das den minimalen Protokolliergrad angibt, der für die einzelnen Kategorien an Application Insights gesendet wird. Die hier angegebene Kategorie steuert alle Kategorien, die mit demselben Wert beginnen und längere Werte haben Vorrang. In der vorhergehenden host.json-Beispieldatei werden alle Kategorien, die mit „Host.Aggregator“ beginnen, auf der Information-Ebene protokolliert. Alle anderen Kategorien, die mit „Host“ beginnen, z. B. „Host.Executor“, werden auf der Error-Ebene protokolliert.

queues

Konfigurationseinstellungen für Trigger und Bindungen der Speicherwarteschlange.

{
    "queues": {
      "maxPollingInterval": 2000,
      "visibilityTimeout" : "00:00:30",
      "batchSize": 16,
      "maxDequeueCount": 5,
      "newBatchThreshold": 8
    }
}
Eigenschaft Standard Beschreibung
maximales Abfrageintervall 60000 Das maximale Intervall in Millisekunden zwischen Warteschlangenumfragen.
visibilityTimeout 0 Das Zeitintervall zwischen Wiederholungsversuchen, wenn bei der Verarbeitung einer Nachricht ein Fehler auftritt.
batchSize 16 Die Anzahl der Warteschlangennachrichten, die die Functions-Runtime gleichzeitig abruft und parallel verarbeitet. Wenn die Anzahl, die verarbeitet wird, auf newBatchThreshold sinkt, ruft die Runtime einen weiteren Batch ab und beginnt mit der Verarbeitung dieser Nachrichten. Aus diesem Grund beträgt die maximale Anzahl der pro Funktion verarbeiteten Nachrichten batchSize plus newBatchThreshold. Dieser Grenzwert gilt separat für jede Funktion, die durch die Warteschlange ausgelöst wird.

Wenn Sie eine parallele Ausführung für in einer Warteschlange empfangene Nachrichten vermeiden möchten, können Sie batchSize auf „1“ festlegen. Diese Einstellung verhindert Parallelität jedoch nur so lange, wie Ihre Funktions-App auf einem einzelnen virtuellen Computer (VM) ausgeführt wird. Wenn die Funktions-App horizontal auf mehrere virtuelle Computer hochskaliert wird, kann jeder virtuelle Computer eine Instanz jeder durch die Warteschlange ausgelösten Funktion ausführen.

Der maximale Wert für batchSize beträgt 32.
maxDequeueCount 5 Die Anzahl der Versuche zum Verarbeiten einer Nachricht, bevor diese in die Warteschlange für nicht verarbeitete Nachrichten verschoben wird.
newBatchThreshold batchSize/2 Wenn die Anzahl der gleichzeitig verarbeiteten Nachrichten auf diesen Wert sinkt, ruft die Runtime einen weiteren Batch ab.

SendGrid

Konfigurationseinstellung für die SendGrid-Ausgangsbindung.

{
    "sendGrid": {
        "from": "Contoso Group <admin@contoso.com>"
    }
}    
Eigenschaft Standard Beschreibung
from n/v E-Mail-Adresse des Absenders für alle Funktionen.

serviceBus

Konfigurationseinstellung für Service Bus Trigger und Bindungen.

{ 
    "serviceBus": {
      "maxConcurrentCalls": 16,
      "prefetchCount": 100,
      "autoRenewTimeout": "00:05:00",
      "autoComplete": true
    }
}
Eigenschaft Standard Beschreibung
maxConcurrentCalls 16 Die maximale Anzahl gleichzeitiger Aufrufe für den Rückruf, der vom Nachrichtensystem initiiert werden soll. Die Functions-Runtime verarbeitet standardmäßig mehrere Nachrichten gleichzeitig. Um die Runtime anzuweisen, jeweils nur eine Warteschlangen- oder Themennachricht zu verarbeiten, legen Sie maxConcurrentCalls auf „1“ fest.
prefetchCount n/v Der standardmäßige PrefetchCount, der vom zugrunde liegenden ServiceBusReceiver verwendet wird.
autoRenewTimeout 00:05:00 Die maximale Zeitspanne, in der die Nachrichtensperre automatisch erneuert wird.
autoComplete wahr Bei TRUE vervollständigt der Trigger die Nachrichtenverarbeitung bei erfolgreicher Ausführung des Vorgangs automatisch. Wenn falsch, liegt es in der Verantwortung der Funktion, die Nachricht vor der Rückgabe zu vervollständigen.

singleton

Konfigurationseinstellungen für das Singleton-Sperrverhalten. Weitere Informationen finden Sie in GitHub Issue über Singleton-Support.

{
    "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 Schlösser erneuern sich automatisch.
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 Runtime versucht, eine Sperre abzurufen.
lockAcquisitionPollingInterval n/v Das Intervall zwischen den Versuchen, eine Sperre abzurufen.

tracing

Version 1.x

Konfigurationseinstellungen für Protokolle, die Sie mithilfe eines TraceWriter-Objekts erstellen. Weitere Informationen finden Sie unter [C#-Protokollierung].

{
    "tracing": {
      "consoleLevel": "verbose",
      "fileLoggingMode": "debugOnly"
    }
}
Eigenschaft Standard Beschreibung
consoleLevel info Die Ablaufverfolgungsebene für die Konsolenprotokollierung. Optionen sind: off, error, warning, info und verbose.
fileLoggingMode debugOnly Die Ablaufverfolgungsebene für die Dateiprotokollierung. Optionen sind never, always, debugOnly.

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

Nächste Schritte