host.json referens för Azure Functions 1.x
Den host.json metadatafilen innehåller konfigurationsalternativ som påverkar alla funktioner i en funktionsappinstans. I den här artikeln visas de inställningar som är tillgängliga för version 1.x-körningen. JSON-schemat finns på http://json.schemastore.org/host.
Kommentar
Den här artikeln gäller För Azure Functions 1.x. En referens till host.json i Functions 2.x och senare finns i host.json referens för Azure Functions 2.x.
Andra konfigurationsalternativ för funktionsappar hanteras i appinställningarna.
Vissa host.json inställningar används bara när de körs lokalt i local.settings.json-filen.
Exempel på host.json fil
Följande exempel host.json filer har alla möjliga alternativ angivna.
{
"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" ],
}
I följande avsnitt i den här artikeln förklaras varje toppnivåegenskap. Alla är valfria om inget annat anges.
Nyhetsläsare
Anger hur många funktionsanrop som aggregeras vid beräkning av mått för Application Insights.
{
"aggregator": {
"batchSize": 1000,
"flushTimeout": "00:00:30"
}
}
Property | Standardvärde | beskrivning |
---|---|---|
batchSize | 1000 | Maximalt antal begäranden att aggregera. |
flushTimeout | 00:00:30 | Maximal tidsperiod att aggregera. |
Funktionsanrop aggregeras när den första av de två gränserna nås.
applicationInsights
Styr samplingsfunktionen i Application Insights.
{
"applicationInsights": {
"sampling": {
"isEnabled": true,
"maxTelemetryItemsPerSecond" : 5
}
}
}
Property | Standardvärde | beskrivning |
---|---|---|
isEnabled | true | Aktiverar eller inaktiverar sampling. |
maxTelemetryItemsPerSecond | 5 | Tröskelvärdet då samplingen börjar. |
DocumentDB
Konfigurationsinställningar för Azure Cosmos DB-utlösare och bindningar.
{
"documentDB": {
"connectionMode": "Gateway",
"protocol": "Https",
"leaseOptions": {
"leasePrefix": "prefix1"
}
}
}
Property | Standardvärde | beskrivning |
---|---|---|
GatewayMode | Gateway | Anslutningsläget som används av funktionen när du ansluter till Azure Cosmos DB-tjänsten. Alternativen är Direct och Gateway |
Protokoll | Https | Anslutningsprotokollet som används av funktionen när du ansluter till Azure Cosmos DB-tjänsten. Läs här för en förklaring av båda lägena |
leasePrefix | saknas | Låneprefix som ska användas för alla funktioner i en app. |
durableTask
Konfigurationsinställningar för Durable Functions.
Kommentar
Alla större versioner av Durable Functions stöds i alla versioner av Azure Functions-körningen. Schemat för den host.json konfigurationen skiljer sig dock något beroende på vilken version av Azure Functions-körningen och durable functions-tilläggsversionen du använder. Följande exempel är till för användning med Azure Functions 2.0 och 3.0. Om du använder Azure Functions 1.0 i båda exemplen är de tillgängliga inställningarna desamma, men avsnittet "durableTask" i host.json bör gå i roten för host.json konfiguration i stället för som ett fält under "tillägg".
{
"extensions": {
"durableTask": {
"hubName": "MyTaskHub",
"storageProvider": {
"connectionStringName": "AzureWebJobsStorage",
"controlQueueBatchSize": 32,
"controlQueueBufferThreshold": 256,
"controlQueueVisibilityTimeout": "00:05:00",
"maxQueuePollingInterval": "00:00:30",
"partitionCount": 4,
"trackingStoreConnectionStringName": "TrackingStorage",
"trackingStoreNamePrefix": "DurableTask",
"useLegacyPartitionManagement": true,
"useTablePartitionManagement": false,
"workItemQueueVisibilityTimeout": "00:05:00",
},
"tracing": {
"traceInputsAndOutputs": false,
"traceReplayEvents": false,
},
"notifications": {
"eventGrid": {
"topicEndpoint": "https://topic_name.westus2-1.eventgrid.azure.net/api/events",
"keySettingName": "EventGridKey",
"publishRetryCount": 3,
"publishRetryInterval": "00:00:30",
"publishEventTypes": [
"Started",
"Completed",
"Failed",
"Terminated"
]
}
},
"maxConcurrentActivityFunctions": 10,
"maxConcurrentOrchestratorFunctions": 10,
"extendedSessionsEnabled": false,
"extendedSessionIdleTimeoutInSeconds": 30,
"useAppLease": true,
"useGracefulShutdown": false,
"maxEntityOperationBatchSize": 50,
"storeInputsInOrchestrationHistory": false
}
}
}
Namn på aktivitetshubben måste börja med en bokstav och bestå av endast bokstäver och siffror. Om det inte anges är standardnamnet för aktivitetshubben för en funktionsapp TestHubName. Mer information finns i Uppgiftshubbar.
Property | Standardvärde | beskrivning |
---|---|---|
hubName | TestHubName (DurableFunctionsHub om du använder Durable Functions 1.x) | Alternativa namn på aktivitetshubben kan användas för att isolera flera Durable Functions-program från varandra, även om de använder samma lagringsserverdel. |
controlQueueBatchSize | 32 | Antalet meddelanden som ska hämtas från kontrollkön åt gången. |
controlQueueBufferThreshold | Förbrukningsplan för Python: 32 Förbrukningsplan för JavaScript och C#: 128 Dedikerad/Premium-plan: 256 |
Antalet kontrollkömeddelanden som kan buffrads i minnet åt gången, då avsändaren väntar innan eventuella ytterligare meddelanden tas bort. |
partitionCount | 4 | Antalet partitioner för kontrollkön. Kan vara ett positivt heltal mellan 1 och 16. |
controlQueueVisibilityTimeout | 5 minuter | Tidsgränsen för synligheten för meddelanden i kön för dequeued-kontroller. |
workItemQueueVisibilityTimeout | 5 minuter | Tidsgränsen för synligheten för kömeddelanden för dequeued arbetsobjekt. |
maxConcurrentActivityFunctions | Förbrukningsplan: 10 Dedikerad/Premium-plan: 10 X antalet processorer på den aktuella datorn |
Det maximala antalet aktivitetsfunktioner som kan bearbetas samtidigt på en enda värdinstans. |
maxConcurrentOrchestratorFunctions | Förbrukningsplan: 5 Dedikerad/Premium-plan: 10 X antalet processorer på den aktuella datorn |
Det maximala antalet orkestreringsfunktioner som kan bearbetas samtidigt på en enda värdinstans. |
maxQueuePollingInterval | 30 sekunder | Det maximala avsökningsintervallet för kontroll och arbetsobjekt i formatet hh:mm:ss . Högre värden kan resultera i högre svarstider för meddelandebearbetning. Lägre värden kan leda till högre lagringskostnader på grund av ökade lagringstransaktioner. |
connectionName (2.7.0 och senare) connectionStringName (2.x) azureStorageConnectionStringName (1.x) |
AzureWebJobsStorage | Namnet på en appinställning eller inställningssamling som anger hur du ansluter till de underliggande Azure Storage-resurserna. När en enskild appinställning anges bör det vara en Azure Storage-niska veze. |
trackingStoreConnectionName (2.7.0 och senare) trackingStoreConnectionStringName |
Namnet på en appinställning eller inställningssamling som anger hur du ansluter till tabellerna Historik och Instanser. När en enskild appinställning anges bör det vara en Azure Storage-niska veze. Om det inte anges connectionStringName används anslutningen (Durable 2.x) eller azureStorageConnectionStringName (Durable 1.x). |
|
trackingStoreNamePrefix | Prefixet som ska användas för tabellerna Historik och Instanser när trackingStoreConnectionStringName har angetts. Om det inte anges är DurableTask standardprefixvärdet . Om trackingStoreConnectionStringName inte anges använder hubName tabellerna Historik och Instanser värdet som prefix, och alla inställningar för trackingStoreNamePrefix ignoreras. |
|
traceInputsAndOutputs | falskt | Ett värde som anger om indata och utdata för funktionsanrop ska spåras. Standardbeteendet vid spårning av funktionskörningshändelser är att inkludera antalet byte i serialiserade indata och utdata för funktionsanrop. Det här beteendet ger minimal information om hur indata och utdata ser ut utan att svälla upp loggarna eller oavsiktligt exponera känslig information. Om den här egenskapen anges till true loggas hela innehållet i funktionsindata och utdata genom att standardfunktionen loggas. |
traceReplayEvents | falskt | Ett värde som anger om orkestreringsreprishändelser ska skrivas till Application Insights. |
eventGridTopicEndpoint | URL:en för en anpassad Azure Event Grid-ämnesslutpunkt. När den här egenskapen har angetts publiceras orkestreringshändelser för livscykelmeddelanden till den här slutpunkten. Den här egenskapen stöder lösning av appinställningar. | |
eventGridKeySettingName | Namnet på appinställningen som innehåller nyckeln som används för att autentisera med det anpassade Azure Event Grid-ämnet på EventGridTopicEndpoint . |
|
eventGridPublishRetryCount | 0 | Antalet gånger du försöker igen om publiceringen till Event Grid-ämnet misslyckas. |
eventGridPublishRetryInterval | 5 minuter | Event Grid publicerar återförsöksintervallet i formatet hh:mm:ss . |
eventGridPublishEventTypes | En lista över händelsetyper som ska publiceras till Event Grid. Om det inte anges publiceras alla händelsetyper. Tillåtna värden är Started , Completed , Failed , Terminated . |
|
useAppLease | true | När värdet är inställt på true kräver appar att ett bloblån på appnivå hämtas innan aktivitetshubbens meddelanden bearbetas. Mer information finns i dokumentationen om haveriberedskap och geo-distribution . Tillgänglig från och med v2.3.0. |
useLegacyPartitionManagement | falskt | När det är inställt på false använder använder en partitionshanteringsalgoritm som minskar risken för duplicerad funktionskörning vid utskalning. Tillgänglig från och med v2.3.0. |
useTablePartitionManagement | falskt | När värdet är inställt på true använder en algoritm för partitionshantering som är utformad för att minska kostnaderna för Azure Storage V2-konton. Tillgänglig från och med v2.10.0. Den här funktionen är för närvarande i förhandsversion och är ännu inte kompatibel med förbrukningsplanen. |
useGracefulShutdown | falskt | (Förhandsversion) Aktivera korrekt avstängning för att minska risken för att värdavstängningar misslyckas med funktionskörningar i processen. |
maxEntityOperationBatchSize(2.6.1) | Förbrukningsplan: 50 Dedikerad/Premium-plan: 5000 |
Det maximala antalet entitetsåtgärder som bearbetas som en batch. Om värdet är 1 inaktiveras batchbearbetningen och varje åtgärdsmeddelande bearbetas av ett separat funktionsanrop. |
storeInputsInOrchestrationHistory | falskt | När värdet är inställt på true anger du till Durable Task Framework att spara aktivitetsindata i historiktabellen. Detta gör det möjligt att visa aktivitetsfunktionens indata när du kör frågor mot orkestreringshistoriken. |
Många av de här inställningarna är till för att optimera prestanda. Mer information finns i Prestanda och skala.
eventHub
Konfigurationsinställningar för Event Hub-utlösare och bindningar.
functions
En lista över funktioner som jobbvärden kör. En tom matris innebär att köra alla funktioner. Avsedd endast för användning när den körs lokalt. I funktionsappar i Azure bör du i stället följa stegen i Inaktivera funktioner i Azure Functions för att inaktivera specifika funktioner i stället för att använda den här inställningen.
{
"functions": [ "QueueProcessor", "GitHubWebHook" ]
}
functionTimeout
Anger tidsgränsen för alla funktioner. I en serverlös förbrukningsplan är det giltiga intervallet från 1 sekund till 10 minuter och standardvärdet är 5 minuter. I en App Service-plan finns det ingen total gräns och standardvärdet är null, vilket indikerar ingen tidsgräns.
{
"functionTimeout": "00:05:00"
}
healthMonitor
Konfigurationsinställningar för Övervakare av värdhälsa.
{
"healthMonitor": {
"enabled": true,
"healthCheckInterval": "00:00:10",
"healthCheckWindow": "00:02:00",
"healthCheckThreshold": 6,
"counterThreshold": 0.80
}
}
Property | Standardvärde | beskrivning |
---|---|---|
enabled | true | Anger om funktionen är aktiverad. |
healthCheckInterval | 10 sekund | Tidsintervallet mellan de periodiska hälsokontrollerna i bakgrunden. |
healthCheckWindow | 2 minuter | Ett skjuttidsfönster som används med inställningen healthCheckThreshold . |
healthCheckThreshold | 6 | Maximalt antal gånger hälsokontrollen kan misslyckas innan värdåtervinnningen initieras. |
counterThreshold | 0.80 | Tröskelvärdet där en prestandaräknare anses vara felaktig. |
http
Konfigurationsinställningar för http-utlösare och bindningar.
{
"http": {
"routePrefix": "api",
"maxOutstandingRequests": 200,
"maxConcurrentRequests": 100,
"dynamicThrottlesEnabled": true
}
}
Property | Standardvärde | beskrivning |
---|---|---|
dynamicThrottlesEnabled | falskt | När den här inställningen är aktiverad gör den att pipelinen för bearbetning av begäranden regelbundet kontrollerar systemprestandaräknare som anslutningar/trådar/processer/minne/cpu/etc. och om någon av dessa räknare överskrider ett inbyggt högt tröskelvärde (80 %), avvisas begäranden med ett svar på 429 "För upptagen" tills räknarna återgår till normala nivåer. |
maxConcurrentRequests | obundna (-1 ) |
Det maximala antalet HTTP-funktioner som ska köras parallellt. På så sätt kan du kontrollera samtidighet, vilket kan hjälpa dig att hantera resursutnyttjande. Du kan till exempel ha en HTTP-funktion som använder många systemresurser (minne/cpu/sockets) så att den orsakar problem när samtidigheten är för hög. Eller så kan du ha en funktion som gör utgående begäranden till en tjänst från tredje part, och dessa anrop måste vara frekvensbegränsade. I dessa fall kan det vara till hjälp att tillämpa en begränsning här. |
maxOutstandingRequests | obundna (-1 ) |
Det maximala antalet utestående begäranden som hålls vid en viss tidpunkt. Den här gränsen omfattar begäranden som är i kö men som inte har börjat köras och eventuella pågående körningar. Inkommande begäranden över den här gränsen avvisas med ett svar på 429 "För upptagen". Det gör det möjligt för anropare att använda tidsbaserade återförsöksstrategier och hjälper dig också att kontrollera maximala svarstider för begäranden. Detta styr bara köer som inträffar inom skriptvärdens körningssökväg. Andra köer, till exempel ASP.NET-begärandekön, gäller fortfarande och påverkas inte av den här inställningen. |
routePrefix | api | Routningsprefixet som gäller för alla vägar. Använd en tom sträng för att ta bort standardprefixet. |
id
Det unika ID:t för en jobbvärd. Kan vara ett gemener GUID med bindestreck borttagna. Krävs när du kör lokalt. När du kör i Azure rekommenderar vi att du inte anger något ID-värde. Ett ID genereras automatiskt i Azure när id
det utelämnas.
Om du delar ett Lagringskonto mellan flera funktionsappar kontrollerar du att varje funktionsapp har olika id
. Du kan utelämna egenskapen id
eller manuellt ange ett annat värde för varje funktionsapp id
. Timerutlösaren använder ett lagringslås för att säkerställa att det bara finns en timerinstans när en funktionsapp skalar ut till flera instanser. Om två funktionsappar delar samma id
och var och en använder en timerutlösare körs bara en timer.
{
"id": "9f4ea53c5136457d883d685e57164f08"
}
Logger
Styr filtrering för loggar som skrivits av ett ILogger-objekt eller av context.log.
{
"logger": {
"categoryFilter": {
"defaultLevel": "Information",
"categoryLevels": {
"Host": "Error",
"Function": "Error",
"Host.Aggregator": "Information"
}
}
}
}
Property | Standardvärde | beskrivning |
---|---|---|
categoryFilter | saknas | Anger filtrering efter kategori |
defaultLevel | Information | För kategorier som inte har angetts i matrisen categoryLevels skickar du loggar på den här nivån och senare till Application Insights. |
categoryLevels | saknas | En matris med kategorier som anger den minsta loggnivå som ska skickas till Application Insights för varje kategori. Kategorin som anges här styr alla kategorier som börjar med samma värde, och längre värden har företräde. I föregående exempel host.json fil, alla kategorier som börjar med "Host.Aggregator"-loggen på Information nivå. Alla andra kategorier som börjar med "Host", till exempel "Host.Executor", loggar på Error nivå. |
köer
Konfigurationsinställningar för utlösare och bindningar i lagringskö.
{
"queues": {
"maxPollingInterval": 2000,
"visibilityTimeout" : "00:00:30",
"batchSize": 16,
"maxDequeueCount": 5,
"newBatchThreshold": 8
}
}
Property | Standardvärde | beskrivning |
---|---|---|
maxPollingInterval | 60000 | Maximalt intervall i millisekunder mellan kömätningar. |
visibilityTimeout | 0 | Tidsintervallet mellan återförsök när bearbetningen av ett meddelande misslyckas. |
batchSize | 16 | Antalet kömeddelanden som Functions-körningen hämtar samtidigt och processer parallellt. När talet som bearbetas kommer ned till newBatchThreshold hämtar körningen en annan batch och börjar bearbeta dessa meddelanden. Så det maximala antalet samtidiga meddelanden som bearbetas per funktion är batchSize plus newBatchThreshold . Den här gränsen gäller separat för varje köutlöst funktion. Om du vill undvika parallell körning för meddelanden som tas emot i en kö kan du ange batchSize till 1. Den här inställningen eliminerar dock endast samtidighet så länge funktionsappen körs på en enda virtuell dator (VM). Om funktionsappen skalas ut till flera virtuella datorer kan varje virtuell dator köra en instans av varje köutlöst funktion.Maxvärdet batchSize är 32. |
maxDequeueCount | 5 | Antalet gånger du försöker bearbeta ett meddelande innan du flyttar det till giftkön. |
newBatchThreshold | batchSize/2 | När antalet meddelanden som bearbetas samtidigt minskar till det här antalet, hämtar körningen en annan batch. |
SendGrid
Konfigurationsinställning för SendGrind-utdatabindningen
{
"sendGrid": {
"from": "Contoso Group <admin@contoso.com>"
}
}
Property | Standardvärde | beskrivning |
---|---|---|
från | saknas | Avsändarens e-postadress för alla funktioner. |
serviceBus
Konfigurationsinställning för Service Bus-utlösare och bindningar.
{
"serviceBus": {
"maxConcurrentCalls": 16,
"prefetchCount": 100,
"autoRenewTimeout": "00:05:00",
"autoComplete": true
}
}
Property | Standardvärde | beskrivning |
---|---|---|
maxConcurrentCalls | 16 | Det maximala antalet samtidiga anrop till återanropet som meddelandepumpen ska initiera. Som standard bearbetar Functions-körningen flera meddelanden samtidigt. Om du vill dirigera körningen till att endast bearbeta en enskild kö eller ett ämnesmeddelande i taget anger du maxConcurrentCalls till 1. |
prefetchCount | saknas | StandardprefetchCount som ska användas av den underliggande ServiceBusReceiver. |
autoRenewTimeout | 00:05:00 | Den maximala varaktighet inom vilken meddelandelåset förnyas automatiskt. |
autoComplete | true | När det är sant slutför utlösaren meddelandebearbetningen automatiskt vid lyckad körning av åtgärden. När det är falskt är det funktionens ansvar att slutföra meddelandet innan det returneras. |
Singleton
Konfigurationsinställningar för Singleton-låsbeteende. Mer information finns i GitHub-problem om singleton-support.
{
"singleton": {
"lockPeriod": "00:00:15",
"listenerLockPeriod": "00:01:00",
"listenerLockRecoveryPollingInterval": "00:01:00",
"lockAcquisitionTimeout": "00:01:00",
"lockAcquisitionPollingInterval": "00:00:03"
}
}
Property | Standardvärde | beskrivning |
---|---|---|
lockPeriod | 00:00:15 | Den period som lås på funktionsnivå tas för. Låsen förnyas automatiskt. |
listenerLockPeriod | 00:01:00 | Den period som lyssnarlås tas för. |
listenerLockRecoveryPollingInterval | 00:01:00 | Tidsintervallet som används för återställning av lyssnarlås om det inte gick att hämta ett lyssnarlås vid start. |
lockAcquisitionTimeout | 00:01:00 | Den maximala tiden som körningen försöker hämta ett lås. |
lockAcquisitionPollingInterval | saknas | Intervallet mellan låsningsförvärvsförsök. |
Spårning
Version 1.x
Konfigurationsinställningar för loggar som du skapar med hjälp av ett TraceWriter
objekt. Mer information finns i [C#-loggning].
{
"tracing": {
"consoleLevel": "verbose",
"fileLoggingMode": "debugOnly"
}
}
Property | Standardvärde | beskrivning |
---|---|---|
consoleLevel | information | Spårningsnivån för konsolloggning. Alternativen är: off , error , warning , info och verbose . |
fileLoggingMode | debugOnly | Spårningsnivån för filloggning. Alternativen är never , always , debugOnly . |
watchDirectories
En uppsättning delade kodkataloger som ska övervakas för ändringar. Säkerställer att när koden i dessa kataloger ändras hämtas ändringarna av dina funktioner.
{
"watchDirectories": [ "Shared" ]
}