host.json-verwijzing voor Azure Functions 1.x

Het host.json metagegevensbestand bevat configuratieopties die van invloed zijn op alle functies in een exemplaar van een functie-app. Dit artikel bevat de instellingen die beschikbaar zijn voor de runtime van versie 1.x. Het JSON-schema bevindt zich op http://json.schemastore.org/host.

Notitie

Dit artikel bewaart de host.json referentie voor Azure Functions runtime 1.x. Voor andere historische informatie, zie de runtime 1.x legacy referentie. Voor de referentie van de actuele host.json, zie host.json referentie voor Azure Functions 2.x en later.

Andere configuratieopties voor functie-apps worden beheerd in uw app-instellingen.

Sommige host.json-instellingen worden alleen gebruikt wanneer ze lokaal worden uitgevoerd in het local.settings.json-bestand .

Voorbeeldbestand host.json

In het volgende voorbeeld host.json bestanden zijn alle mogelijke opties opgegeven.

{
    "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 de volgende secties van dit artikel wordt elke eigenschap op het hoogste niveau uitgelegd. Alle zijn optioneel, tenzij anders aangegeven.

samenvoeger

Hiermee geeft u op hoeveel functieaanroepen worden geaggregeerd wanneer u meetwaarden voor Application Insights berekent.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
Eigendom Standaard Beschrijving
batchSize 1000 Maximaal aantal verzoeken om te aggregeren.
flushTimeout 00:00:30 Maximale tijdsperiode voor aggregatie.

Functie-aanroepen worden geaggregeerd wanneer de eerste van de twee limieten is bereikt.

applicationInsights

Hiermee beheert u de steekproeffunctie in Application Insights.

{
        "applicationInsights": {
                "sampling": {
                    "isEnabled": true,
                    "maxTelemetryItemsPerSecond" : 5
                }
        }
}
Eigendom Standaard Beschrijving
isEnabled waar Hiermee worden steekproeven in- of uitgeschakeld.
maxTelemetryItemsPerSecond 5 De drempelwaarde waarbij steekproeven worden gestart.

DocumentDB

Configuratie-instellingen voor de Azure Cosmos DB-trigger en -koppelingen.

{
    "documentDB": {
        "connectionMode": "Gateway",
        "protocol": "Https",
        "leaseOptions": {
            "leasePrefix": "prefix1"
        }
    }
}
Eigendom Standaard Beschrijving
GatewayModus Toegangspoort De verbindingsmodus die door de functie wordt gebruikt bij het verbinden met de Azure Cosmos DB-service. Opties zijn Direct en Gateway
protocol Https Het verbindingsprotocol dat door de functie wordt gebruikt wanneer verbinding met de Azure Cosmos DB-service wordt gemaakt. Lees hier voor een uitleg van beide modi
leasevoorvoegsel n.v.t Leasevoorvoegsel dat gebruikt wordt in alle functies van een app.

duurzame taak

Configuratie-instellingen voor Durable Functions.

In Azure Functions runtime 1.x bevindt de durableTask sectie zich aan de wortel van het host.json bestand. De beschikbare instellingen hangen af van de versie van de Durable Functions-extensie. Voor de huidige configuratiereferentie, zie Durable Functions host.json instellingen.

eventHub

Configuratie-instellingen voor Event Hub-triggers en -bindingen.

functies

Een lijst met functies die door de taakhost worden uitgevoerd. Een lege matrix betekent dat alle functies worden uitgevoerd. Alleen bedoeld voor gebruik wanneer lokaal uitgevoerd. In functie-apps in Azure moet u in plaats daarvan de stappen in Hoe functies uitschakelen in Azure Functions volgen om specifieke functies uit te schakelen in plaats van deze instelling te gebruiken.

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

functionTimeout

Geeft de time-outduur voor alle functies aan. In een serverloos verbruiksabonnement is het geldige bereik van 1 seconde tot 10 minuten en de standaardwaarde is 5 minuten. In een App Service-plan is er geen algemene limiet en is de standaardwaarde null, wat aangeeft dat er geen time-out is.

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

gezondheidsmonitor

Configuratie-instellingen voor Host-statusmonitor.

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
Eigendom Standaard Beschrijving
ingeschakeld waar Hiermee geeft u op of de functie is ingeschakeld.
systeemgezondheidscontrolesinterval 10 seconden Het tijdsinterval tussen de periodieke gezondheidscontroles op de achtergrond.
gezondheidscontrolevenster 2 minuten Een schuiftijdvenster dat wordt gebruikt met de healthCheckThreshold instelling.
gezondheidscontrole-drempel 6 Maximaal aantal keren dat de gezondheidscontrole kan mislukken voordat een host-recycling wordt gestart.
tellerdrempel 0.80 De drempelwaarde waarboven een prestatiemeter als ongezond wordt beschouwd.

http

Configuratie-instellingen voor HTTP-triggers en bindings.

{
    "http": {
        "routePrefix": "api",
        "maxOutstandingRequests": 200,
        "maxConcurrentRequests": 100,
        "dynamicThrottlesEnabled": true
    }
}
Eigendom Standaard Beschrijving
DynamicThrottlesIngeschakeld onwaar Wanneer deze instelling is ingeschakeld, zorgt deze instelling ervoor dat de pijplijn voor het verwerken van aanvragen periodiek systeemprestatiemeteritems controleert, zoals verbindingen/threads/processen/geheugen/cpu/etc. en als een van deze tellers een ingebouwde hoge drempelwaarde (80%) overschrijdt, worden aanvragen geweigerd met een 429 'Te bezet' antwoord totdat de tellers terugkeren naar normale niveaus.
maxConcurrentRequests onbegrensd (-1) Het maximum aantal HTTP-functies dat parallel wordt uitgevoerd. Hiermee kunt u gelijktijdigheid regelen, waardoor u het resourcegebruik kunt beheren. U hebt bijvoorbeeld een HTTP-functie die veel systeembronnen (geheugen/cpu/sockets) gebruikt, zodat er problemen optreden wanneer gelijktijdigheid te hoog is. Of misschien hebt u een functie waarmee uitgaande verzoeken worden gedaan naar een service van derden, en die aanroepen moeten beperkt worden in snelheid. In deze gevallen kan het toepassen van een beperking van snelheid hier helpen.
maxAantalOpenstaandeVerzoeken onbegrensd (-1) Het maximum aantal openstaande aanvragen dat op elk gewenst moment wordt bewaard. Deze limiet omvat aanvragen die in de wachtrij worden geplaatst, maar die niet zijn gestart en eventuele lopende uitvoeringen. Eventuele binnenkomende aanvragen die deze limiet overschrijden, worden geweigerd met een antwoord van 429 'Te bezet'. Hierdoor kunnen bellers strategieën voor opnieuw proberen op basis van tijd gebruiken en kunt u ook maximale latenties voor aanvragen beheren. Dit bepaalt alleen wachtrijen die plaatsvinden binnen het uitvoeringspad van de scripthost. Andere wachtrijen, zoals de ASP.NET aanvraagwachtrij, worden nog steeds van kracht en worden niet beïnvloed door deze instelling.
routeVoorvoegsel API Het routevoorvoegsel dat van toepassing is op alle routes. Gebruik een lege tekenreeks om het standaardvoorvoegsel te verwijderen.

identiteitskaart

De unieke ID voor een taakbeheerder. Kan een GUID in kleine letters met verwijderde streepjes zijn. Vereist bij lokale uitvoering. Als u in Azure werkt, raden we aan geen ID-waarde in te stellen. Er wordt automatisch een id gegenereerd in Azure wanneer id wordt weggelaten.

Als u een opslagaccount deelt in meerdere functie-apps, moet u ervoor zorgen dat elke functie-app een andere idheeft. U kunt de id eigenschap weglaten of elke functie-app id handmatig instellen op een andere waarde. De timertrigger maakt gebruik van een opslagvergrendeling om ervoor te zorgen dat er slechts één timerexemplaar is wanneer een functie-app wordt uitgebreid tot meerdere exemplaren. Als twee functie-apps hetzelfde id delen en elk een timertrigger gebruikt, wordt slechts één timer uitgevoerd.

{
    "id": "9f4ea53c5136457d883d685e57164f08"
}

logboek

Hiermee bepaalt u het filteren van logboeken die zijn geschreven door een ILogger-object of door context.log.

{
    "logger": {
        "categoryFilter": {
            "defaultLevel": "Information",
            "categoryLevels": {
                "Host": "Error",
                "Function": "Error",
                "Host.Aggregator": "Information"
            }
        }
    }
}
Eigendom Standaard Beschrijving
categoryFilter n.v.t Specificeert filteren op categorie
standaardniveau Gegevens Voor alle categorieën die niet in de categoryLevels matrix zijn opgegeven, verzendt u logboeken op dit niveau en hoger naar Application Insights.
categorieniveaus n.v.t Een matrix met categorieën die het minimale logboekniveau specificeert dat moet worden verzonden naar Application Insights voor elke categorie. De categorie die hier wordt opgegeven, bepaalt alle categorieën die beginnen met dezelfde waarde en langere waarden hebben voorrang. In het voorgaande voorbeeldbestand host.json worden alle categorieën die beginnen met "Host.Aggregator" gelogd op Information niveau. Alle andere categorieën die beginnen met 'Host', zoals 'Host.Executor', loggen op Error niveau.

wachtrijen

Configuratie-instellingen voor opslagwachtrijtriggers en -bindingen.

{
    "queues": {
      "maxPollingInterval": 2000,
      "visibilityTimeout" : "00:00:30",
      "batchSize": 16,
      "maxDequeueCount": 5,
      "newBatchThreshold": 8
    }
}
Eigendom Standaard Beschrijving
maxPollingInterval 60000 Het maximale interval in milliseconden tussen wachtrijpeilingen.
zichtbaarheidstijdslimiet 0 Het tijdsinterval tussen herhaalde pogingen wanneer de verwerking van een bericht mislukt.
batchgrootte 16 Het aantal wachtrijberichten dat de Functions-runtime tegelijkertijd ophaalt en parallel verwerkt. Wanneer het aantal dat wordt verwerkt daalt tot newBatchThreshold, haalt de runtime een andere batch op en begint deze berichten te verwerken. Het maximum aantal gelijktijdige berichten dat per functie wordt verwerkt, is batchSize dus plus newBatchThreshold. Deze limiet geldt afzonderlijk voor elke functie die door de wachtrij wordt geactiveerd.

Als u parallelle uitvoering wilt voorkomen voor berichten die in één wachtrij zijn ontvangen, kunt u instellen batchSize op 1. Deze instelling elimineert echter alleen gelijktijdigheid zolang uw functie-app wordt uitgevoerd op één virtuele machine (VM). Als de functie-app wordt uitgeschaald naar meerdere VM's, kan elke VM één exemplaar van elke door de wachtrij geactiveerde functie uitvoeren.

Het maximum batchSize is 32.
MaximalAantalUitwachtingen 5 Het aantal keren dat u een bericht wilt verwerken voordat u het naar de gifwachtrij verplaatst.
newBatchThreshold batchSize/2 Telkens wanneer het aantal berichten dat gelijktijdig wordt verwerkt tot deze hoeveelheid daalt, haalt de runtime een nieuwe batch op.

SendGrid

Configuratie-instelling voor de SendGrid outputbinding.

{
    "sendGrid": {
        "from": "Contoso Group <admin@contoso.com>"
    }
}    
Eigendom Standaard Beschrijving
van n.v.t Het e-mailadres van de afzender in alle functies.

serviceBus

Configuratie-instelling voor Service Bus triggers en bindingen.

{ 
    "serviceBus": {
      "maxConcurrentCalls": 16,
      "prefetchCount": 100,
      "autoRenewTimeout": "00:05:00",
      "autoComplete": true
    }
}
Eigendom Standaard Beschrijving
maximale gelijktijdige oproepen 16 Het maximale aantal gelijktijdige oproepen naar de callback dat de message pump zou moeten initiëren. Standaard verwerkt de Functions-runtime meerdere berichten gelijktijdig. Als u de runtime wilt leiden om slechts één wachtrij of onderwerpbericht tegelijk te verwerken, stelt u in op maxConcurrentCalls 1.
voorladenAantal n.v.t De standaard PrefetchCount die zal worden gebruikt door de onderliggende ServiceBusReceiver.
autoRenewTimeout (automatische verlengingstijdlimiet) 00:05:00 De maximale duur waarin de berichtvergrendeling automatisch wordt vernieuwd.
automatisch aanvullen waar Wanneer waar, voltooit de trigger de berichtverwerking automatisch bij een geslaagde uitvoering van de bewerking. Indien onwaar, is het de verantwoordelijkheid van de functie om het bericht te voltooien voordat het wordt geretourneerd.

singleton

Configuratie-instellingen voor Singleton-vergrendelingsgedrag. Zie GitHub probleem met singleton-ondersteuning voor meer informatie.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
Eigendom Standaard Beschrijving
vergrendelingsperiode 00:00:15 De periode waarvoor functieniveauvergrendelingen worden gebruikt. De vergrendeling wordt automatisch vernieuwd.
luisteraarvergrendelingsperiode 00:01:00 De periode waarvoor listenervergrendelingen worden gebruikt.
Herstelinterval voor polling van luisteraarvergrendeling 00:01:00 Het tijdsinterval dat wordt gebruikt voor herstel van listenervergrendeling als een listenervergrendeling niet kan worden verkregen bij het opstarten.
lockAcquisitionTimeout 00:01:00 De maximale tijd dat de runtime probeert een lock te verkrijgen.
lockAcquisitionPollingInterval n.v.t Het interval tussen pogingen om vergrendeling te verkrijgen.

traceren

Versie 1.x

Configuratie-instellingen voor logboeken die u maakt met behulp van een TraceWriter object. Zie [C#-logboekregistratie] voor meer informatie.

{
    "tracing": {
      "consoleLevel": "verbose",
      "fileLoggingMode": "debugOnly"
    }
}
Eigendom Standaard Beschrijving
consoleNiveau informatie Het traceerniveau voor consolelogging. Opties zijn: off, error, warning, en infoverbose.
bestand-logboekmodus alleen voor foutopsporing Het traceringsniveau voor logboekregistratie van bestanden. Opties zijnnever, always, . debugOnly

watchDirectories

Een set gedeelde codemappen die moeten worden bewaakt voor wijzigingen. Zorgt ervoor dat wanneer code in deze mappen wordt gewijzigd, de wijzigingen worden opgehaald door uw functies.

{
    "watchDirectories": [ "Shared" ]
}

Volgende stappen