host.json-referens för Azure Functions 1.x

Metadatafilen host.json 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 för 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 endast när de körs lokalt i filen local.settings.json .

Exempel på host.json-fil

Följande host.json-exempelfiler 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 Description
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 Description
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 Description
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 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 finnas i roten för konfigurationen host.json i stället för som ett fält under "extensions".

{
 "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",
          "Pending",
          "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 Description
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)
azureStorage Anslut ionStringName (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 ska det vara en Azure Storage-anslutningssträng.
trackingStore Anslut ionName (2.7.0 och senare)
trackingStore Anslut ionStringName
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 ska det vara en Azure Storage-anslutningssträng. 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 DurableTaskstandardprefixvä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 false 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 false 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 App Inställningar-lösning.
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å truekrä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 false När det är inställt på falseanvä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 false När värdet är inställt på trueanvä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 false (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 false När värdet är inställt på trueanger 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 Description
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 Description
dynamicThrottlesEnabled false 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 efter context.log.

{
    "logger": {
        "categoryFilter": {
            "defaultLevel": "Information",
            "categoryLevels": {
                "Host": "Error",
                "Function": "Error",
                "Host.Aggregator": "Information"
            }
        }
    }
}
Property Standardvärde Description
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 den föregående exempelfilen host.json börjar 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 Description
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 newBatchThresholdhä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 Description
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 Description
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 Description
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 Description
consoleLevel Information om Spårningsnivån för konsolloggning. Alternativen är: off, error, warning, infooch 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" ]
}

Nästa steg