title | description | services | author | manager | keywords | ms.service | ms.devlang | ms.topic | ms.date | ms.author |
---|---|---|---|---|---|---|---|---|---|---|
host.json reference for Azure Functions 2.x |
Reference documentation for the Azure Functions host.json file with the v2 runtime. |
functions |
ggailey777 |
jeconnoc |
azure-functions |
multiple |
conceptual |
09/08/2018 |
glenga |
[!div class="op_single_selector" title1="Select the version of the Azure Functions runtime you are using: "]
The host.json metadata file contains global configuration options that affect all functions for a function app. This article lists the settings that are available for the v2 runtime.
Note
This article is for Azure Functions 2.x. For a reference of host.json in Functions 1.x, see host.json reference for Azure Functions 1.x.
Other function app configuration options are managed in your app settings.
Some host.json settings are only used when running locally in the local.settings.json file.
The following sample host.json files have all possible options specified.
{
"version": "2.0",
"aggregator": {
"batchSize": 1000,
"flushTimeout": "00:00:30"
},
"extensions": {
"cosmosDb": {},
"durableTask": {},
"eventHubs": {},
"http": {},
"queues": {},
"sendGrid": {},
"serviceBus": {}
},
"functions": [ "QueueProcessor", "GitHubWebHook" ],
"functionTimeout": "00:05:00",
"healthMonitor": {
"enabled": true,
"healthCheckInterval": "00:00:10",
"healthCheckWindow": "00:02:00",
"healthCheckThreshold": 6,
"counterThreshold": 0.80
},
"logging": {
"fileLoggingMode": "debugOnly",
"logLevel": {
"Function.MyFunction": "Information",
"default": "None"
},
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"maxTelemetryItemsPerSecond" : 5
}
}
},
"singleton": {
"lockPeriod": "00:00:15",
"listenerLockPeriod": "00:01:00",
"listenerLockRecoveryPollingInterval": "00:01:00",
"lockAcquisitionTimeout": "00:01:00",
"lockAcquisitionPollingInterval": "00:00:03"
},
"watchDirectories": [ "Shared", "Test" ]
}
The following sections of this article explain each top-level property. All are optional unless otherwise indicated.
[!INCLUDE aggregator]
This setting is a child of logging.
[!INCLUDE applicationInsights]
Configuration setting can be found in Cosmos DB triggers and bindings.
Configuration setting can be found in bindings for Durable Functions.
Configuration settings can be found in Event Hub triggers and bindings.
Property that returns an object that contains all of the binding-specific settings, such as http and eventHub.
A list of functions that the job host runs. An empty array means run all functions. Intended for use only when running locally. In function apps in Azure, you should instead follow the steps in How to disable functions in Azure Functions to disable specific functions rather than using this setting.
{
"functions": [ "QueueProcessor", "GitHubWebHook" ]
}
Indicates the timeout duration for all functions. In a serverless Consumption plan, the valid range is from 1 second to 10 minutes, and the default value is 5 minutes. In an App Service plan, there is no overall limit and the default depends on the runtime version. In version 2.x, the default value for an App Service plan is 30 minutes. In version 1.x, it's null, which indicates no timeout.
{
"functionTimeout": "00:05:00"
}
Configuration settings for Host health monitor.
{
"healthMonitor": {
"enabled": true,
"healthCheckInterval": "00:00:10",
"healthCheckWindow": "00:02:00",
"healthCheckThreshold": 6,
"counterThreshold": 0.80
}
}
Property | Default | Description |
---|---|---|
enabled | true | Specifies whether the feature is enabled. |
healthCheckInterval | 10 seconds | The time interval between the periodic background health checks. |
healthCheckWindow | 2 minutes | A sliding time window used in conjunction with the healthCheckThreshold setting. |
healthCheckThreshold | 6 | Maximum number of times the health check can fail before a host recycle is initiated. |
counterThreshold | 0.80 | The threshold at which a performance counter will be considered unhealthy. |
Configuration settings can be found in http triggers and bindings.
[!INCLUDE functions-host-json-http]
Controls the logging behaviors of the function app, including Application Insights.
"logging": {
"fileLoggingMode": "debugOnly",
"logLevel": {
"Function.MyFunction": "Information",
"default": "None"
},
"applicationInsights": {
...
}
}
Property | Default | Description |
---|---|---|
fileLoggingMode | debugOnly | Defines what level of file logging is enabled. Options are never , always , debugOnly . |
logLevel | n/a | Object that defines the log category filtering for functions in the app. Version 2.x follows the ASP.NET Core layout for log category filtering. This lets you filter logging for specific functions. For more information, see Log filtering in the ASP.NET Core documentation. |
applicationInsights | n/a | The applicationInsights setting. |
Configuration settings can be found in Storage queue triggers and bindings.
Configuration setting can be found in SendGrid triggers and bindings.
Configuration setting can be found in Service Bus triggers and bindings.
Configuration settings for Singleton lock behavior. For more information, see GitHub issue about singleton support.
{
"singleton": {
"lockPeriod": "00:00:15",
"listenerLockPeriod": "00:01:00",
"listenerLockRecoveryPollingInterval": "00:01:00",
"lockAcquisitionTimeout": "00:01:00",
"lockAcquisitionPollingInterval": "00:00:03"
}
}
Property | Default | Description |
---|---|---|
lockPeriod | 00:00:15 | The period that function level locks are taken for. The locks auto-renew. |
listenerLockPeriod | 00:01:00 | The period that listener locks are taken for. |
listenerLockRecoveryPollingInterval | 00:01:00 | The time interval used for listener lock recovery if a listener lock couldn't be acquired on startup. |
lockAcquisitionTimeout | 00:01:00 | The maximum amount of time the runtime will try to acquire a lock. |
lockAcquisitionPollingInterval | n/a | The interval between lock acquisition attempts. |
The version string "version": "2.0"
is required for a function app that targets the v2 runtime.
A set of shared code directories that should be monitored for changes. Ensures that when code in these directories is changed, the changes are picked up by your functions.
{
"watchDirectories": [ "Shared" ]
}
[!div class="nextstepaction"] Learn how to update the host.json file
[!div class="nextstepaction"] See global settings in environment variables