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

Metadatafilen host.json innehåller konfigurationsalternativ som påverkar alla funktioner i en funktionsappinstans. Den här artikeln innehåller de inställningar som är tillgängliga för version 1.x-körningen. JSON-schemat finns på http://json.schemastore.org/host .

Anteckning

Den här artikeln är till 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 funktionsappen hanteras i appinställningarna.

Vissa host.json-inställningar används bara när du kör 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 egenskap på den översta nivån. Alla är valfria om inget annat anges.

Nyhetsläsare

Anger hur många funktions anrop som ska aggregeras när du beräknar mått för Application Insights.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
Egenskap Standardvärde Beskrivning
batchSize 1000 Maximalt antal begär Anden som ska aggregeras.
flushTimeout 00:00:30 Maximal tids period som ska aggregeras.

Funktions anrop sammanställs när den första av de två gränserna nås.

applicationInsights

Styr samplings funktionen i Application Insights.

{
    "applicationInsights": {
        "sampling": {
          "isEnabled": true,
          "maxTelemetryItemsPerSecond" : 5
        }
    }
}
Egenskap 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 och bindningar.

{
    "documentDB": {
        "connectionMode": "Gateway",
        "protocol": "Https",
        "leaseOptions": {
            "leasePrefix": "prefix1"
        }
    }
}
Egenskap Standardvärde Description
GatewayMode Gateway Anslutningsläget som används av funktionen vid anslutning till Azure Cosmos DB tjänsten. Alternativen är Direct och Gateway
Protokoll Https Anslutningsprotokollet som används av funktionen vid anslutning 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.

Anteckning

Alla större versioner Durable Functions stöds på alla versioner av Azure Functions runtime. Schemat för konfigurationen host.jsdock något annorlunda beroende på vilken version av Azure Functions-körningen och vilken Durable Functions som 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 ska finnas i roten för host.jsi konfigurationen i stället för som ett fält under "tillägg".

Durable Functions 2.x

{
 "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,
      "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
  }
 }
}

Durable Functions 1.x

{
  "extensions": {
    "durableTask": {
      "hubName": "MyTaskHub",
      "controlQueueBatchSize": 32,
      "partitionCount": 4,
      "controlQueueVisibilityTimeout": "00:05:00",
      "workItemQueueVisibilityTimeout": "00:05:00",
      "maxConcurrentActivityFunctions": 10,
      "maxConcurrentOrchestratorFunctions": 10,
      "maxQueuePollingInterval": "00:00:30",
      "azureStorageConnectionStringName": "AzureWebJobsStorage",
      "trackingStoreConnectionStringName": "TrackingStorage",
      "trackingStoreNamePrefix": "DurableTask",
      "traceInputsAndOutputs": false,
      "logReplayEvents": false,
      "eventGridTopicEndpoint": "https://topic_name.westus2-1.eventgrid.azure.net/api/events",
      "eventGridKeySettingName":  "EventGridKey",
      "eventGridPublishRetryCount": 3,
      "eventGridPublishRetryInterval": "00:00:30",
      "eventGridPublishEventTypes": ["Started", "Completed", "Failed", "Terminated"]
    }
  }
}

Namnen på uppgiftshubben måste börja med en bokstav och får endast bestå av bokstäver och siffror. Om inget anges är standardnamnet för en funktionsapp DurableFunctionsHub. Mer information finns i Aktivitetshubben.

Egenskap Standardvärde Description
hubName DurableFunctionsHub Alternativa namn på aktivitetshubben kan användas för att isolera Durable Functions program från varandra, även om de använder samma lagringsbackend.
controlQueueBatchSize 32 Antalet meddelanden som ska tas emot 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 buffra i minnet åt gången, då dispatcher väntar innan ytterligare meddelanden tas bort från kön.
partitionCount 4 Antalet partitioner för kontrollkön. Kan vara ett positivt heltal mellan 1 och 16.
controlQueueVisibilityTimeout 5 minuter Tidsgränsen för synlighet för kömeddelanden i kö för kön.
workItemQueueVisibilityTimeout 5 minuter Tidsgränsen för synlighet för kömeddelanden för arbetsobjekt som tas ur kö.
maxConcurrentActivityFunctions Förbrukningsplan: 10
Dedikerad/Premium plan: 10 gånger 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 gånger 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 längre svarstider för meddelandebearbetning. Lägre värden kan leda till högre lagringskostnader på grund av ökade lagringstransaktioner.
connectionStringName (2.x)
azureStorageConnectionStringName (1.x)
AzureWebJobsStorage Namnet på appinställningen som har den anslutningssträng Azure Storage används för att hantera underliggande Azure Storage resurser.
trackingStoreConnectionStringName Namnet på en anslutningssträng som ska användas för tabellerna Historik och Instanser. Om inget anges används connectionStringName anslutningen (Durable 2.x) azureStorageConnectionStringName eller (Durable 1.x).
trackingStoreNamePrefix Prefixet som ska användas för tabellerna Historik och Instanser när trackingStoreConnectionStringName har angetts. Om inget värde anges blir standardprefixvärdet DurableTask . Om inte anges använder tabellerna Historik och Instanser värdet som prefix, och trackingStoreConnectionStringName alla inställningar för hubName 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 uppsvälta loggarna eller oavsiktligt exponera känslig information. Om den här egenskapen är true loggas hela innehållet i funktionsindata och utdata i standardfunktionens loggning.
traceReplayEvents falskt Ett värde som anger om orkestreringsuppspelningshändelser ska skrivas till Application Insights.
eventGridTopicEndpoint URL:en för en Azure Event Grid slutpunkt för anpassat ämne. När den här egenskapen har angetts publiceras meddelanden om orkestreringslivscykel 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 autentisering med det anpassade Azure Event Grid ämnet på EventGridTopicEndpoint .
eventGridPublishRetryCount 0 Antal gånger som det ska försöka igen om publiceringen till Event Grid ämne misslyckas.
eventGridPublishRetryInterval 5 minuter Den Event Grid publicerar återförsöksintervall i formatet hh:mm:ss.
eventGridPublishEventTypes En lista över händelsetyper som ska publiceras Event Grid. Om inget anges publiceras alla händelsetyper. Tillåtna värden Started är , , , Completed Failed Terminated .
useAppLease true När det här är true inställt på kräver appar att ett bloblån på appnivå inhämtas innan aktivitetshubbens meddelanden bearbetas. Mer information finns i dokumentationen om haveriberedskap och geo-distribution. Tillgängligt från och med v2.3.0.
useLegacyPartitionManagement falskt När det är false inställt på använder en partitionshanteringsalgoritm som minskar risken för duplicerad funktionskörning vid utskalning. Tillgängligt från och med v2.3.0.
useGracefulShutdown falskt (Förhandsversion) Aktivera korrekt avstängning för att minska risken för att värdavstängningar misslyckas med funktionskörningar under processen.

Många av de här inställningarna används för att optimera prestanda. Mer information finns i Prestanda och skalning.

eventHub

Konfigurationsinställningar för Event Hub-utlösare och bindningar.

Funktioner

En lista över funktioner som jobbvärden kör. En tom matris innebär att köra alla funktioner. Avsett endast för användning när du kör lokalt. I funktionsappar i Azure bör du i stället följa stegen i Inaktivera funktioner i Azure Functions inaktivera specifika funktioner i stället för att använda den här inställningen.

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

functionTimeout

Anger tidsgränsens varaktighet för alla funktioner. I en förbrukningsplan utan server är det giltiga intervallet mellan 1 sekund och 10 minuter och standardvärdet är 5 minuter. I en App Service plan finns det ingen övergripande gräns och standardvärdet är null, vilket inte anger någon tidsgräns.

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

healthMonitor

Konfigurationsinställningar för värdhälsoövervakaren.

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
Egenskap Standardvärde Description
enabled true Anger om funktionen är aktiverad.
healthCheckInterval 10 sekunder Tidsintervallet mellan de periodiska hälsokontrollerna i bakgrunden.
healthCheckWindow 2 minuter Ett glidande tidsfönster som används tillsammans med healthCheckThreshold inställningen.
healthCheckThreshold 6 Maximalt antal gånger hälsokontrollen kan misslyckas innan en värd återanvänds.
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
    }
}
Egenskap Standardvärde Description
dynamicThrottlesEnabled falskt När den här inställningen är aktiverad leder det till att pipelinen för bearbetning av begäranden regelbundet kontrollerar systemets prestandaräknare som anslutningar/trådar/processer/minne/cpu/etc. och om någon av dessa räknare är över ett inbyggt högt tröskelvärde (80 %), avvisas begäranden med svaret 429 "För upptagen" tills räknarna återgår till normala nivåer.
maxConcurrentRequests unbounded ( -1 ) Det maximala antalet HTTP-funktioner som ska köras parallellt. På så sätt kan du styra samtidighet, vilket kan hjälpa dig att hantera resursutnyttjandet. Du kan till exempel ha en HTTP-funktion som använder stora systemresurser (minne/cpu/sockets) så att den orsakar problem när samtidigheten är för hög. Eller så kanske du har en funktion som gör utgående begäranden till en tjänst från tredje part och dessa anrop måste frekvensbegränsas. I dessa fall kan det hjälpa att tillämpa en begränsning här.
maxOutstandingRequests unbounded ( -1 ) Det maximala antalet utestående begäranden som hålls vid en given tidpunkt. Den här gränsen omfattar begäranden som köas men inte har börjat köras, samt eventuella pågående körningar. Inkommande begäranden över den här gränsen avvisas med svaret 429 "För upptagen". Det gör att anropare kan använda tidsbaserade återförsöksstrategier och hjälper dig också att styra maximal svarstid för förfrågningar. Detta styr endast köer som inträffar i körningssökvägen för skriptvärden. Andra köer, till exempel ASP.NET för begäran, kommer fortfarande att vara i kraft och påverkas inte av den här inställningen.
routePrefix api Vägprefixet som gäller för alla vägar. Använd en tom sträng för att ta bort standardprefixet.

id

Unikt ID för en jobbvärd. Kan vara ett guid i gemener med borttagna bindestreck. 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 utelämnas.

Om du delar ett Storage över flera funktionsappar kontrollerar du att varje funktionsapp har olika id . Du kan utelämna egenskapen eller manuellt ange ett värde för varje id id funktionsapp. 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 och id 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"
            }
        }
    }
}
Egenskap Standardvärde Description
categoryFilter saknas Anger filtrering efter kategori
defaultLevel Information För alla kategorier som inte anges i categoryLevels matrisen skickar du loggar på den här nivån och högre till Application Insights.
categoryLevels saknas En matris med kategorier som anger den minsta loggnivå som ska skickas till Application Insights för varje kategori. Den kategori 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 host.json-exempelfil visas alla kategorier som börjar med loggen "Host.Aggregator" på Information nivå. Alla andra kategorier som börjar med "Värd", till exempel "Host.Executor", loggar på Error nivå.

Köer

Konfigurationsinställningar för Storage utlösare och bindningar.

{
    "queues": {
      "maxPollingInterval": 2000,
      "visibilityTimeout" : "00:00:30",
      "batchSize": 16,
      "maxDequeueCount": 5,
      "newBatchThreshold": 8
    }
}
Egenskap Standardvärde Description
maxPollingInterval 60000 Det maximala intervallet i millisekunder mellan köröster.
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 antalet som bearbetas hamnar på newBatchThreshold hämtar körningen en annan batch och börjar bearbeta dessa meddelanden. Det maximala antalet samtidiga meddelanden som bearbetas per funktion är batchSize alltså 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 skalar 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 som ett meddelande ska bearbetas innan det flyttas till kön med skadligt meddelande.
newBatchThreshold batchSize/2 När antalet meddelanden som bearbetas samtidigt når 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>"
    }
}    
Egenskap Standardvärde Description
Från saknas Avsändarens e-postadress i alla funktioner.

serviceBus

Konfigurationsinställning för Service Bus utlösare och bindningar.

{
    "serviceBus": {
      "maxConcurrentCalls": 16,
      "prefetchCount": 100,
      "autoRenewTimeout": "00:05:00",
      "autoComplete": true
    }
}
Egenskap 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 att endast bearbeta en enskild kö eller ett ämnesmeddelande i taget anger maxConcurrentCalls du till 1.
prefetchCount saknas Standard-PrefetchCount som ska användas av den underliggande MessageReceiver.
autoRenewTimeout 00:05:00 Den maximala varaktighet inom vilken meddelandelåset förnyas automatiskt.
Komplettera automatiskt true Om 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 om singleton-stöd.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
Egenskap Standardvärde Description
lockPeriod 00:00:15 Den period som lås på funktionsnivå används för. Låsen förnyas automatiskt.
listenerLockPeriod 00:01:00 Den punkt som lyssnarlås används för.
listenerLockRecoveryPollingInterval 00:01:00 Tidsintervallet som används för återställning av lyssnarlås om det inte gick att få ett lyssnarlås vid start.
lockAcquisitionTimeout 00:01:00 Den längsta tid som körningen försöker hämta ett lås.
lockAcquisitionPollingInterval saknas Intervallet mellan låsfö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"
    }
}
Egenskap Standardvärde Description
consoleLevel information Spårningsnivån för konsolloggning. Alternativen är: off , , , och error warning info verbose .
fileLoggingMode debugOnly Spårningsnivån för filloggning. Alternativen är never , always , debugOnly .

watchDirectories

En uppsättning kataloger med delad kod som ska övervakas för ändringar. Säkerställer att ändringarna hämtas av dina funktioner när koden i dessa kataloger ändras.

{
    "watchDirectories": [ "Shared" ]
}

Nästa steg