Referenční informace k souboru host.json pro Azure Functions 1.x

Soubor metadat host.json obsahuje možnosti konfigurace, které ovlivňují všechny funkce v instanci aplikace funkcí. Tento článek uvádí nastavení, která jsou k dispozici pro modul runtime verze 1.x. Schéma JSON je na http://json.schemastore.org/hostadrese .

Poznámka:

Tento článek je určený pro Azure Functions 1.x. Referenční informace o host.json ve funkcích 2.x a novějších najdete v referenčních informacích k souboru host.json pro Azure Functions 2.x.

Další možnosti konfigurace aplikace funkcí se spravují v nastavení aplikace.

Některá nastavení host.json se používají jenom při místním spuštění v souboru local.settings.json .

Ukázkový soubor host.json

V následujících ukázkových souborech host.json jsou zadané všechny možné možnosti.

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

Následující části tohoto článku vysvětlují jednotlivé vlastnosti nejvyšší úrovně. Všechny jsou volitelné, pokud není uvedeno jinak.

Agregátor

Určuje, kolik volání funkcí se agreguje při výpočtu metrik pro Přehledy aplikace.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
Vlastnost Výchozí Popis
batchSize 1000 Maximální počet požadavků, které se mají agregovat.
flushTimeout 00:00:30 Maximální časové období, které se má agregovat.

Vyvolání funkcí se agreguje při dosažení prvního ze dvou limitů.

aplikace Přehledy

Řídí funkci vzorkování v Přehledy aplikace.

{
    "applicationInsights": {
        "sampling": {
          "isEnabled": true,
          "maxTelemetryItemsPerSecond" : 5
        }
    }
}
Vlastnost Výchozí Popis
Isenabled pravda Povolí nebo zakáže vzorkování.
maxTelemetryItemsPerSecond 5 Prahová hodnota, na které začíná vzorkování.

DocumentDB

Nastavení konfigurace pro trigger a vazby služby Azure Cosmos DB

{
    "documentDB": {
        "connectionMode": "Gateway",
        "protocol": "Https",
        "leaseOptions": {
            "leasePrefix": "prefix1"
        }
    }
}
Vlastnost Výchozí Popis
GatewayMode Brána Režim připojení používaný funkcí při připojování ke službě Azure Cosmos DB. Možnosti jsou Direct a Gateway
Protokol Https Protokol připojení používaný funkcí při připojení ke službě Azure Cosmos DB. Tady najdete vysvětlení obou režimů.
leasePrefix Není k dispozici Předpona zapůjčení, která se použije ve všech funkcích v aplikaci.

durableTask

Nastavení konfigurace pro Durable Functions

Poznámka:

Všechny hlavní verze Durable Functions jsou podporovány ve všech verzích modulu runtime Azure Functions. Schéma konfigurace host.json se ale mírně liší v závislosti na verzi modulu runtime Azure Functions a verzi rozšíření Durable Functions, kterou používáte. Následující příklady se používají se službou Azure Functions 2.0 a 3.0. V obou příkladech platí, že pokud používáte Azure Functions 1.0, jsou dostupná nastavení stejná, ale část DurableTask souboru host.json by měla být v kořenovém adresáři konfigurace host.json, nikoli jako pole v části Rozšíření.

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

Názvy centra úkolů musí začínat písmenem a obsahovat pouze písmena a číslice. Pokud není zadaný, výchozí název centra úloh pro aplikaci funkcí je TestHubName. Další informace najdete v tématu Centra úloh.

Vlastnost Výchozí Popis
hubName TestHubName (DurableFunctionsHub, pokud používáte Durable Functions 1.x) Názvy alternativních center úloh je možné použít k izolaci více aplikací Durable Functions mezi sebou, i když používají stejný back-end úložiště.
controlQueueBatchSize 32 Počet zpráv, které se mají najednou stáhnout z řídicí fronty
controlQueueBufferThreshold Plán Consumption pro Python: 32
Plán Consumption pro JavaScript a C#: 128
Plán Dedicated/Premium: 256
Počet zpráv řídicí fronty, které lze ukládat do vyrovnávací paměti najednou, kdy dispečer bude čekat před vyřazením dalších zpráv.
partitionCount 4 Počet oddílů pro řídicí frontu. Může to být kladné celé číslo mezi 1 a 16.
controlQueueVisibilityTimeout 5 minut Časový limit viditelnosti zpráv fronty vyřazených z fronty řízení.
workItemQueueVisibilityTimeout 5 minut Časový limit viditelnosti zpráv fronty vyřazených pracovních položek z fronty
maxConcurrentActivityFunctions Plán Consumption: 10
Plán Dedicated/Premium: 10X počet procesorů na aktuálním počítači
Maximální počet funkcí aktivity, které lze současně zpracovat v jedné instanci hostitele.
maxConcurrentOrchestratorFunctions Plán Consumption: 5
Plán Dedicated/Premium: 10X počet procesorů na aktuálním počítači
Maximální počet funkcí orchestrátoru, které lze současně zpracovat v jedné instanci hostitele.
maxQueuePollingInterval 30 sekund Maximální interval dotazování fronty pracovních položek a ovládacích prvků ve formátu hh:mm:ss . Vyšší hodnoty můžou mít za následek vyšší latenci zpracování zpráv. Nižší hodnoty můžou mít za následek vyšší náklady na úložiště kvůli zvýšeným transakcím úložiště.
connectionName (2.7.0 a novější)
connectionStringName (2.x)
azureStorage Připojení ionStringName (1.x)
AzureWebJobsStorage Název nastavení aplikace nebo kolekce nastavení, která určuje, jak se připojit k podkladovým prostředkům Azure Storage. Když je k dispozici nastavení jedné aplikace, mělo by se jednat o připojovací řetězec azure Storage.
trackingStore Připojení ionName (2.7.0 a novější)
trackingStore Připojení ionStringName
Název nastavení aplikace nebo nastavení kolekce, která určuje, jak se připojit k tabulkám Historie a Instance. Když je k dispozici nastavení jedné aplikace, mělo by se jednat o připojovací řetězec azure Storage. Pokud není zadané, connectionStringName použije se připojení (Durable 2.x) nebo azureStorageConnectionStringName (Durable 1.x).
trackingStoreNamePrefix Předpona, která se má použít pro tabulky Historie a Instance, je-li trackingStoreConnectionStringName zadána. Pokud není nastavená, bude DurableTaskvýchozí hodnota předpony . Pokud trackingStoreConnectionStringName není zadáno, budou tabulky Historie a Instance používat hubName hodnotu jako předponu a všechna nastavení budou trackingStoreNamePrefix ignorována.
traceInputsAndOutputs false (nepravda) Hodnota označující, zda se mají trasovat vstupy a výstupy volání funkce. Výchozí chování při trasování událostí provádění funkce je zahrnout počet bajtů do serializovaných vstupů a výstupů pro volání funkce. Toto chování poskytuje minimální informace o tom, jak vypadají vstupy a výstupy, aniž by se protokoly nebo neúmyslně zpřístupňovaly citlivé informace. Nastavení této vlastnosti na hodnotu true způsobí, že výchozí protokolování funkce zapíše celý obsah vstupů a výstupů funkce.
traceReplayEvents false (nepravda) Hodnota označující, jestli se mají události orchestrace zapisovat do aplikace Přehledy.
eventGridTopicEndpoint Adresa URL vlastního koncového bodu tématu služby Azure Event Grid. Při nastavení této vlastnosti se události oznámení životního cyklu orchestrace publikují do tohoto koncového bodu. Tato vlastnost podporuje řešení Nastavení aplikace.
eventGridKeySettingName Název nastavení aplikace obsahující klíč použitý k ověřování pomocí vlastního tématu služby Azure Event Grid na adrese EventGridTopicEndpoint.
eventGridPublishRetryCount 0 Počet opakování, kdy se publikování do tématu Event Gridu nezdaří.
eventGridPublishRetryInterval 5 minut Event Grid publikuje interval opakování ve formátu hh:mm:ss .
eventGridPublishEventTypes Seznam typů událostí, které se mají publikovat do Event Gridu. Pokud není zadáno, budou publikovány všechny typy událostí. Povolené hodnoty zahrnují Started, Completed, Failed, Terminated.
useAppLease pravda Pokud je nastavená hodnota true, aplikace budou před zpracováním zpráv centra úloh vyžadovat získání zapůjčení objektů blob na úrovni aplikace. Další informace najdete v dokumentaci k zotavení po havárii a geografické distribuci . Dostupné od verze 2.3.0.
useLegacyPartitionManagement false (nepravda) Pokud je nastavená hodnota false, používá algoritmus správy oddílů, který snižuje možnost duplicitního spuštění funkce při horizontálním navýšení kapacity. Dostupné od verze 2.3.0.
useTablePartitionManagement false (nepravda) Pokud je truetato možnost nastavená, používá algoritmus správy oddílů navržený ke snížení nákladů na účty Azure Storage V2. Dostupné od verze 2.10.0. Tato funkce je aktuálně ve verzi Preview a ještě není kompatibilní s plánem Consumption.
UseGracefulShutdown false (nepravda) (Preview) Povolte řádné vypnutí, aby se snížila pravděpodobnost, že hostitelské vypnutí selhává při provádění funkcí v procesu.
maxEntityOperationBatchSize(2.6.1) Plán Consumption: 50
Plán Dedicated/Premium: 5000
Maximální počet operací entit, které se zpracovávají jako dávka. Pokud je nastavená hodnota 1, dávkování je zakázané a každá zpráva operace je zpracována samostatnou vyvoláním funkce.
storeInputsInOrchestrationHistory false (nepravda) Pokud je tato možnost nastavená na true, řekne rozhraní Durable Task Framework, aby uložil vstupy aktivit v tabulce historie. To umožňuje zobrazení vstupů funkcí aktivit při dotazování historie orchestrace.

Mnohé z těchto nastavení slouží k optimalizaci výkonu. Další informace najdete v tématu Výkon a škálování.

eventHub

Nastavení konfigurace pro triggery a vazby centra událostí

– funkce

Seznam funkcí, které hostitel úlohy spouští. Prázdné pole znamená spuštění všech funkcí. Určeno k použití pouze při místním spuštění. V aplikacích funkcí v Azure byste měli místo toho postupovat podle kroků v části Jak zakázat funkce ve službě Azure Functions a zakázat konkrétní funkce místo použití tohoto nastavení.

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

functionTimeout

Určuje dobu časového limitu pro všechny funkce. V bezserverovém plánu Consumption je platný rozsah od 1 sekundy do 10 minut a výchozí hodnota je 5 minut. V plánu služby App Service neexistuje žádný celkový limit a výchozí hodnota je null, což značí žádný časový limit.

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

healthMonitor

Nastavení konfigurace pro monitorování stavu hostitele

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
Vlastnost Výchozí Popis
enabled pravda Určuje, jestli je funkce povolená.
healthCheckInterval 10 sekund Časový interval mezi pravidelnými kontrolami stavu na pozadí.
healthCheckWindow 2 minuty Posuvné časové okno použité s healthCheckThreshold nastavením.
healthCheckThreshold 6 Maximální počet selhání kontroly stavu před zahájením recyklace hostitele
counterThreshold 0.80 Prahová hodnota, při které bude čítač výkonu považován za poškozený.

http

Nastavení konfigurace pro triggery a vazby HTTP

{
    "http": {
        "routePrefix": "api",
        "maxOutstandingRequests": 200,
        "maxConcurrentRequests": 100,
        "dynamicThrottlesEnabled": true
    }
}
Vlastnost Výchozí Popis
dynamicThrottlesEnabled false (nepravda) Pokud je toto nastavení povolené, způsobí to, že kanál zpracování požadavků pravidelně kontroluje čítače výkonu systému, jako jsou připojení, vlákna, procesy, paměť, procesor atd. a pokud některý z těchto čítačů překročí integrovanou vysokou prahovou hodnotu (80 %), požadavky se zamítnou s odpovědí 429 "Příliš zaneprázdněné", dokud se čítače nevrátí na normální úrovně.
maxConcurrentRequests nevázané (-1) Maximální počet funkcí HTTP, které se budou spouštět paralelně. Toto nastavení umožňuje řídit souběžnost, což vám může pomoct spravovat využití prostředků. Můžete mít například funkci HTTP, která používá velké množství systémových prostředků (paměť/procesor/sokety), které způsobují problémy, když je souběžnost příliš vysoká. Nebo můžete mít funkci, která provádí odchozí požadavky na službu třetí strany a tato volání musí být omezená rychlostí. V takových případech může pomoct implementace omezování.
maxOutstandingRequests nevázané (-1) Maximální počet nevyřízených žádostí, které se v daném okamžiku uchovávají. Tento limit zahrnuje požadavky, které jsou ve frontě, ale nespustily spouštění, a probíhající provádění. Všechny příchozí požadavky nad tímto limitem jsou odmítnuty s odpovědí 429 "Příliš zaneprázdněné". To umožňuje volajícím využívat strategie opakování na základě času a také pomáhá řídit maximální latenci požadavků. To řídí pouze řízení fronty, ke kterému dochází v rámci cesty spuštění hostitele skriptu. Ostatní fronty, jako je fronta požadavků ASP.NET, budou dál platit a toto nastavení na ně nebude mít vliv.
routePrefix api Předpona trasy, která se vztahuje na všechny trasy. K odebrání výchozí předpony použijte prázdný řetězec.

ID

Jedinečné ID hostitele úlohy. Může to být identifikátor GUID s pomlčkami, které jsou odebrané. Vyžaduje se při místním spuštění. Při spuštění v Azure doporučujeme nenastavovat hodnotu ID. ID se v Azure vygeneruje automaticky, když id je vynechán.

Pokud sdílíte účet úložiště mezi více aplikacemi funkcí, ujistěte se, že každá aplikace funkcí má jinou id. Vlastnost můžete vynechat id nebo ručně nastavit každou aplikaci id funkcí na jinou hodnotu. Trigger časovače používá zámek úložiště, aby se zajistilo, že při horizontálním navýšení kapacity aplikace funkcí na více instancí bude existovat pouze jedna instance časovače. Pokud dvě aplikace funkcí sdílejí stejné id a každý používá trigger časovače, spustí se jenom jeden časovač.

{
    "id": "9f4ea53c5136457d883d685e57164f08"
}

Logger

Řídí filtrování protokolů zapsaných objektem ILogger nebo podle context.log.

{
    "logger": {
        "categoryFilter": {
            "defaultLevel": "Information",
            "categoryLevels": {
                "Host": "Error",
                "Function": "Error",
                "Host.Aggregator": "Information"
            }
        }
    }
}
Vlastnost Výchozí Popis
categoryFilter Není k dispozici Určuje filtrování podle kategorie.
defaultLevel Informace Pro všechny kategorie nezadané v categoryLevels poli odešlete protokoly na této úrovni a výše do aplikace Přehledy.
categoryLevels Není k dispozici Pole kategorií, které určuje minimální úroveň protokolu, která se má odeslat do aplikace Přehledy pro každou kategorii. Kategorie zadaná zde řídí všechny kategorie, které začínají stejnou hodnotou, a delší hodnoty mají přednost. V předchozím ukázkovém souboru host.json všechny kategorie, které začínají protokolem Host.Aggregator na Information úrovni. Všechny ostatní kategorie, které začínají na "Hostitel", například "Host.Executor", protokol na Error úrovni.

fronty

Nastavení konfigurace pro triggery a vazby fronty služby Storage

{
    "queues": {
      "maxPollingInterval": 2000,
      "visibilityTimeout" : "00:00:30",
      "batchSize": 16,
      "maxDequeueCount": 5,
      "newBatchThreshold": 8
    }
}
Vlastnost Výchozí Popis
maxPollingInterval 60000 Maximální interval v milisekundách mezi dotazy fronty.
visibilityTimeout 0 Časový interval mezi opakovanými pokusy při zpracování zprávy selže.
batchSize 16 Počet zpráv fronty, které modul runtime Služby Functions načítá souběžně a zpracovává paralelně. Jakmile se číslo zpracuje, newBatchThresholdmodul runtime získá jinou dávku a začne tyto zprávy zpracovávat. Takže maximální počet souběžných zpráv zpracovávaných na funkci je batchSize plus newBatchThreshold. Tento limit platí samostatně pro každou funkci aktivovanou frontou.

Pokud se chcete vyhnout paralelnímu provádění zpráv přijatých v jedné frontě, můžete nastavit batchSize hodnotu 1. Toto nastavení ale eliminuje souběžnost jenom za předpokladu, že vaše aplikace funkcí běží na jednom virtuálním počítači. Pokud se aplikace funkcí škáluje na více virtuálních počítačů, může každý virtuální počítač spustit jednu instanci každé funkce aktivované frontou.

Maximum batchSize je 32.
maxDequeueCount 5 Počet pokusů o zpracování zprávy před přesunutím do fronty jedu
newBatchThreshold batchSize/2 Pokaždé, když počet zpracovávaných zpráv současně přejde na toto číslo, modul runtime načte jinou dávku.

SendGrid

Nastavení konfigurace pro výstupní vazbu SendGrind

{
    "sendGrid": {
        "from": "Contoso Group <admin@contoso.com>"
    }
}    
Vlastnost Výchozí Popis
od Není k dispozici E-mailová adresa odesílatele ve všech funkcích.

serviceBus

Nastavení konfigurace pro triggery a vazby služby Service Bus

{ 
    "serviceBus": {
      "maxConcurrentCalls": 16,
      "prefetchCount": 100,
      "autoRenewTimeout": "00:05:00",
      "autoComplete": true
    }
}
Vlastnost Výchozí Popis
maxConcurrentCalls 16 Maximální počet souběžných volání zpětného volání, které má pumpa zpráv zahájit. Modul runtime služby Functions ve výchozím nastavení zpracovává více zpráv současně. Pokud chcete modul runtime nasměrovat na zpracování pouze jedné fronty nebo zprávy tématu najednou, nastavte maxConcurrentCalls na hodnotu 1.
prefetchCount Není k dispozici Výchozí prefetchCount, který bude použit základní ServiceBusReceiver.
autoRenewTimeout 00:05:00 Maximální doba trvání, během které se zámek zprávy obnoví automaticky.
AutoComplete pravda Pokud je hodnota true, trigger dokončí zpracování zpráv automaticky při úspěšném spuštění operace. Pokud je false, je to zodpovědnost funkce dokončit zprávu před vrácením.

Singleton

Nastavení konfigurace pro chování zámku Singleton. Další informace najdete v tématu o problému GitHubu s podporou singletonu.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
Vlastnost Výchozí Popis
lockPeriod 00:00:15 Období, pro které se zamykají na úrovni funkce. Zámky se automaticky prodlužují.
ListenerLockPeriod 00:01:00 Období, pro které se zamkne naslouchací proces, se používá.
ListenerLockRecoveryPollingInterval 00:01:00 Časový interval použitý pro obnovení naslouchacího procesu, pokud se nepodařilo získat zámek naslouchacího procesu při spuštění.
lockAcquisitionTimeout 00:01:00 Maximální doba, po kterou se modul runtime pokusí získat zámek.
lockAcquisitionPollingInterval Není k dispozici Interval mezi pokusy o získání zámku.

Trasování

Verze 1.x

Nastavení konfigurace pro protokoly, které vytvoříte pomocí objektu TraceWriter . Další informace najdete v tématu [Protokolování jazyka C#].

{
    "tracing": {
      "consoleLevel": "verbose",
      "fileLoggingMode": "debugOnly"
    }
}
Vlastnost Výchozí Popis
consoleLevel Info Úroveň trasování pro protokolování konzoly. Možnosti jsou: off, error, warning, infoa verbose.
fileLoggingMode DebugOnly Úroveň trasování pro protokolování souborů. Možnosti jsou never, always, debugOnly.

watchDirectories

Sada sdílených adresářů kódu, které by měly být monitorovány pro změny. Zajišťuje, že když se změní kód v těchto adresářích, budou změny vyzvednuty vašimi funkcemi.

{
    "watchDirectories": [ "Shared" ]
}

Další kroky