host.json
Azure Functions host.json files
host.json
Validate
Check your file against this schema
Opens the validator with this schema already loaded. Paste your
host.json and it validates in your browser — nothing is uploaded.
Reference
Fields
Generated directly from the schema, following local
$refs, to two levels of nesting.
| Field | Type | Description |
|---|---|---|
aggregator | object | Configuration settings for the function result aggregator. |
aggregator.batchSize | integer | The maximum batch size for aggregations. If this value is reached before the 'flushTimeout', all values will be flushed. default: 1000 |
aggregator.flushTimeout | string | The aggregation duration. The aggregator will flush periodically based on this value. default: "00:00:30" |
applicationInsights | object | Configuration settings for Application Insights logging. |
applicationInsights.sampling | object | Configuration settings for Application Insights client-side adaptive sampling. |
applicationInsights.sampling.isEnabled | boolean | If true, client-side adaptive sampling is enabled. default: true |
applicationInsights.sampling.maxTelemetryItemsPerSecond | integer | The target rate that the adaptive algorithm aims for on each instance default: 5 |
functions | array<string> | The list of functions the host should load. |
functionTimeout | oneOf | Value indicating the timeout duration for all functions. |
healthMonitor | object | Configuration settings for the Functions host health monitor |
healthMonitor.enabled | boolean | Specifies whether the feature is enabled. default: true |
healthMonitor.healthCheckInterval | string | The time interval between the periodic background health checks default: "00:00:10" |
healthMonitor.healthCheckWindow | string | A sliding time window used in conjunction with the healthCheckThreshold setting. default: "00:02:00" |
healthMonitor.healthCheckThreshold | integer | Maximum number of times the health check can fail before a host recycle is initiated. default: 6 |
healthMonitor.counterThreshold | number | The threshold at which a performance counter will be considered unhealthy. default: 0.8 |
id | string | The unique ID for this job host. Can be a lower case GUID with dashes removed |
logger | object | Configuration settings for logging. |
logger.defaultLevel | enum | The default level for logging. If a category level is not specified, this value is used. default: "Information"one of: "Critical", "Debug", "Error", "Information", "None", "Trace" … (+1) |
logger.categoryLevels | object | Log levels for specific categories. |
singleton | object | Configuration settings for Singleton lock behavior. |
singleton.lockPeriod | string | The period that function level locks are taken for (they will auto renew). default: "00:00:15" |
singleton.listenerLockPeriod | string | The period that listener locks are taken for. default: "00:01:00" |
singleton.listenerLockRecoveryPollingInterval | string | The time interval used for listener lock recovery if a listener lock couldn't be acquired on startup. default: "00:01:00" |
singleton.lockAcquisitionTimeout | string | The maximum amount of time the runtime will try to acquire a lock. default: "00:01:00" |
singleton.lockAcquisitionPollingInterval | string | The interval between lock acquisition attempts. |
watchDirectories | array<string> | Set of shared code directories that should be monitored for changes to ensure that when code in these directories is changed, it is picked up by your functions |
tracing | object | Configuration settings for logging/tracing behavior. |
tracing.consoleLevel | enum | The tracing level used for console logging. default: "verbose"one of: "off", "error", "warning", "info", "verbose" |
tracing.fileLoggingMode | enum | Value determining what level of file logging is enabled. default: "debugOnly"one of: "never", "always", "debugOnly" |
http | object | Configuration settings for 'http' triggers. |
http.routePrefixrequired | string | Defines the default route prefix that applies to all routes. Use an empty string to remove the prefix. default: "api" |
http.maxConcurrentRequests | integer | Defines the the maximum number of http functions that will execute in parallel. default: -1 |
http.maxOutstandingRequests | integer | Defines the maximum number of outstanding requests that will be held at any given time. default: -1 |
http.dynamicThrottlesEnabled | boolean | Indicates whether dynamic host counter checks should be enabled. default: false |
http.hsts | object | Configuration settings for Strict-Transport-Security |
http.hsts.isEnabled | boolean | Indicates whether the hsts configuration should be applied |
http.hsts.excludedHosts | array<string> | Defines the list of host names that will not add the HSTS header. |
http.hsts.includeSubDomains | boolean | Indicates whether the includeSubDomain parameter of the Strict-Transport-Security header should be enabled. |
http.hsts.maxAge | string | Defines the max-age parameter of the Strict-Transport-Security header. |
http.hsts.preload | boolean | Indicates whether the preload parameter of the Strict-Transport-Security header should be enabled. |
http.customHeaders | object | Allows you to set custom headers in the HTTP response, ex. X-Content-Type-Options. |
queues | object | Configuration settings for 'queue' triggers. |
queues.maxPollingInterval | integer | The maximum interval in milliseconds between queue polls. default: 1000 |
queues.batchSize | integer | The number of queue messages to retrieve and process in parallel (per job function). default: 16 |
queues.maxDequeueCount | integer | The number of times to try processing a message before moving it to the poison queue default: 5 |
queues.newBatchThreshold | integer | The threshold at which a new batch of messages will be fetched. The default is batchSize/2. |
queues.visibilityTimeout | string | The visibility timeout that will be applied to messages that fail processing. default: "00:00:00" |
serviceBus | object | Configuration settings for 'serviceBus' triggers. |
serviceBus.maxConcurrentCalls | integer | The maximum number of concurrent calls to the callback the message pump should initiate. default: 16 |
serviceBus.prefetchCount | integer | The default PrefetchCount that will be used by the underlying MessageReceiver. |
serviceBus.autoRenewTimeout | string | The maximum duration within which the Service Bus message lock will be renewed automatically. default: "00:05:00" |
serviceBus.autoComplete | boolean | Specifies whether messages should be automatically completed after successful processing. default: true |
eventHub | object | Configuration settings for 'eventHub' triggers. |
eventHub.maxBatchSize | integer | The maximum event count received per receive loop. |
eventHub.prefetchCount | integer | The default PrefetchCount that will be used by the underlying EventProcessorHost. |
eventHub.batchCheckpointFrequency | integer | The number of batches to process before creating an EventHub cursor checkpoint default: 1 |
durableTask | object | Configuration settings for 'orchestration'/'activity' triggers. |
durableTask.hubName | string | Alternate task hub names can be used to isolate multiple Durable Functions applications from each other, even if they're using the same storage backend. default: "DurableFunctionsHub" |
durableTask.storageProvider | object | — |
durableTask.storageProvider.connectionStringName | string | — |
durableTask.storageProvider.controlQueueBatchSize | integer | The number of messages to pull from the control queue at a time. default: 32 |
durableTask.storageProvider.controlQueueBufferThreshold | integer | The number of control queue messages that can be buffered in memory at a time, at which point the dispatcher will wait before dequeuing any additional messages. default: 256 |
durableTask.storageProvider.controlQueueVisibilityTimeout | string | The visibility timeout of dequeued control queue messages. default: "00:05:00" |
durableTask.storageProvider.maxQueuePollingInterval | string | The maximum control and work-item queue polling interval in the hh:mm:ss format. Higher values can result in higher message processing latencies. Lower values can result in higher storage costs because of increased storage transactions. default: "00:00:30" |
durableTask.storageProvider.partitionCount | integer | The partition count for the control queue. May be a positive integer between 1 and 16. default: 4 |
durableTask.storageProvider.trackingStoreConnectionStringName | string | The name of a connection string to use for the History and Instances tables. If not specified, the azureStorageConnectionStringName connection is used. |
durableTask.storageProvider.trackingStoreNamePrefix | string | The prefix to use for the History and Instances tables when trackingStoreConnectionStringName is specified. If not set, the default prefix value will be DurableTask. If trackingStoreConnectionStringName is not specified, then the History |
durableTask.storageProvider.useLegacyPartitionManagement | boolean | When set to false, uses a partition management algorithm that reduces the possibility of duplicate function execution when scaling out. default: false |
durableTask.storageProvider.workItemQueueVisibilityTimeout | string | The visibility timeout of dequeued work item queue messages. default: "00:05:00" |
durableTask.tracing | object | — |
durableTask.tracing.traceInputsAndOutputs | boolean | A value indicating whether to trace the inputs and outputs of function calls. The default behavior when tracing function execution events is to include the number of bytes in the serialized inputs and outputs for function calls. This default: false |
durableTask.tracing.traceReplayEvents | boolean | A value indicating whether to write orchestration replay events to Application Insights. default: false |
durableTask.tracing.distributedTracingEnabled | boolean | Distributed tracing tracks requests and shows how different services interact with each other and correlates orchestrations, entities, and activities together. default: false |
durableTask.tracing.version | oneOf | Distributed tracing version default: "V2" |
durableTask.notifications | object | — |
durableTask.notifications.eventGrid | object | — |
durableTask.maxConcurrentActivityFunctions | integer | The maximum number of activity functions that can be processed concurrently on a single host instance. default: 10 |
durableTask.maxConcurrentOrchestratorFunctions | integer | The maximum number of orchestrator functions that can be processed concurrently on a single host instance. default: 10 |
durableTask.extendedSessionsEnabled | boolean | — |
durableTask.extendedSessionIdleTimeoutInSeconds | integer | — |
durableTask.useAppLease | boolean | When set to true, apps will require acquiring an app-level blob lease before processing task hub messages. default: true |
durableTask.useGracefulShutdown | boolean | Enable gracefully shutting down to reduce the chance of host shutdowns failing in-process function executions. default: false |
durableTask.maxEntityOperationBatchSize | integer | The maximum number of entity operations that are processed as a batch. If set to 1, batching is disabled, and each operation message is processed by a separate function invocation. default: 50 |
durableTask.useTablePartitionManagement | boolean | — default: false |
documentDB | object | Configuration settings for Azure Cosmos DB bindings and triggers. |
documentDB.connectionMode | enum | ConnectionMode to be used on the DocumentClients. default: "Gateway"one of: "Gateway", "Direct" |
documentDB.protocol | enum | Protocol to be used on the DocumentClients. default: "Https"one of: "Https", "Tcp" |
extensionBundle | object | Configuration settings for extension bundle - a predefined set of compatible binding extensions to a function app |
extensionBundle.id | string | The id of the extension bundle default: "Microsoft.Azure.Functions.ExtensionBundle" |
extensionBundle.version | string | The version of the extension bundle. default: "[4.*, 5.0.0)" |
aggregator | object | Configuration settings for the function result aggregator. |
aggregator.batchSize | integer | The maximum batch size for aggregations. If this value is reached before the 'flushTimeout', all values will be flushed. default: 1000 |
aggregator.flushTimeout | string | The aggregation duration. The aggregator will flush periodically based on this value. default: "00:00:30" |
functions | array<string> | The list of functions the host should load. |
functionTimeout | oneOf | Value indicating the timeout duration for all functions. |
healthMonitor | object | Configuration settings for the Functions host health monitor |
healthMonitor.enabled | boolean | Specifies whether the feature is enabled. default: true |
healthMonitor.healthCheckInterval | string | The time interval between the periodic background health checks default: "00:00:10" |
healthMonitor.healthCheckWindow | string | A sliding time window used in conjunction with the healthCheckThreshold setting. default: "00:02:00" |
healthMonitor.healthCheckThreshold | integer | Maximum number of times the health check can fail before a host recycle is initiated. default: 6 |
healthMonitor.counterThreshold | number | The threshold at which a performance counter will be considered unhealthy. default: 0.8 |
languageWorker | object | Configuration settings for Language Workers. |
languageWorker.workersDirectory | string | Specifies full path of the directory for language workers |
logging | object | Configuration settings for logging. |
logging.logLevel | object | Log levels for specific categories. |
logging.logLevel.default | enum | The default level for logging. If a category level is not specified, this value is used. default: "Information"one of: "Critical", "Debug", "Error", "Information", "None", "Trace" … (+1) |
logging.applicationInsights | object | Configuration settings for Application Insights logging. |
logging.applicationInsights.samplingSettings | object | Configuration settings for Application Insights client-side adaptive sampling. |
logging.applicationInsights.enableLiveMetrics | boolean | Enables live metrics collection. default: true |
logging.applicationInsights.enableLiveMetricsFilters | boolean | Enables live metrics filters. default: true |
logging.applicationInsights.enableDependencyTracking | boolean | Enables dependency tracking default: true |
logging.applicationInsights.enablePerformanceCountersCollection | boolean | Enables Kudu performance counters collection. default: true |
logging.applicationInsights.enableMetricsCustomDimensionOptimization | boolean | Enables optimization that bypasses custom dimensions in Metrics telemetry. default: false |
logging.applicationInsights.httpAutoCollectionOptions | object | — |
logging.applicationInsights.snapshotConfiguration | object | — |
logging.fileLoggingMode | enum | Value determining what level of file logging is enabled. default: "debugOnly"one of: "never", "always", "debugOnly" |
managedDependency | object | Managed dependency is a feature that is currently only supported with PowerShell based functions. It enables dependencies to be automatically managed by the service. |
managedDependency.enabled | boolean | If true, the requirements.psd1 file is processed default: true |
retry | object | Retry policy of function execution failures at the app level. Retry policy applies to all the functions in the function app. |
retry.strategy | enum | Retry strategy to use for retrying function executions default: "exponentialBackoff"one of: "exponentialBackof…, "fixedDelay" |
retry.maxRetryCount | integer | The maximum number of retries allowed per function execution. -1 means to retry indefinitely. |
retry.delayInterval | oneOf | Value indicating the delayInterval for function execution retries when using FixedDelay strategy. |
retry.minimumInterval | oneOf | Value indicating the minimumInterval for function execution retries when using ExponentialBackoff strategy. |
retry.maximumInterval | oneOf | Value indicating the maximumInterval for function execution retries when using ExponentialBackoff strategy. |
customHandler | object | Configuration settings for Custom Handler. |
customHandler.description | object | Configuration settings for Custom Handler process |
customHandler.description.defaultExecutablePath | string | Name or path to the Custom Handler process |
customHandler.description.workingDirectory | string | WorkingDirectory to be used by the Custom Handler process. If not set, defaults to function app root folder. |
customHandler.description.arguments | array<string> | Arguments to be passed to the Custom Handler process. Can use environment variables following pattern %envVarName% |
customHandler.enableForwardingHttpRequest | boolean | Forward HttpTrigger request to the custom handler default: false |
customHandler.enableProxyingHttpRequest | boolean | Proxy HttpTrigger request to the custom handler default: false |
customHandler.http | object | HTTP configuration for the custom handler |
customHandler.http.defaultAuthorizationLevel | enum | The default authorization level for HTTP-triggered functions default: "anonymous"one of: "anonymous", "function", "admin" |
customHandler.port | integer | The port on which the custom handler process listens |
singleton | object | Configuration settings for Singleton lock behavior. |
singleton.lockPeriod | string | The period that function level locks are taken for (they will auto renew). default: "00:00:15" |
singleton.listenerLockPeriod | string | The period that listener locks are taken for. default: "00:01:00" |
singleton.listenerLockRecoveryPollingInterval | string | The time interval used for listener lock recovery if a listener lock couldn't be acquired on startup. default: "00:01:00" |
singleton.lockAcquisitionTimeout | string | The maximum amount of time the runtime will try to acquire a lock. default: "00:01:00" |
singleton.lockAcquisitionPollingInterval | string | The interval between lock acquisition attempts. |
watchDirectories | array<string> | Set of shared code directories that should be monitored for changes to ensure that when code in these directories is changed, it is picked up by your functions |
watchFiles | array<string> | An array of one or more names of files that are monitored for changes that require your app to restart. This guarantees that when code in these files are changed, the updates are picked up by your functions |
versionrequired | const | The version of the Azure Functions host.json schema. This is NOT the version of the Azure Functions host. |
extensions | object | — |
extensions.http | object | Configuration settings for 'http' triggers. |
extensions.http.routePrefixrequired | string | Defines the default route prefix that applies to all routes. Use an empty string to remove the prefix. default: "api" |
extensions.http.maxConcurrentRequests | integer | Defines the the maximum number of http functions that will execute in parallel. default: -1 |
extensions.http.maxOutstandingRequests | integer | Defines the maximum number of outstanding requests that will be held at any given time. default: -1 |
extensions.http.dynamicThrottlesEnabled | boolean | Indicates whether dynamic host counter checks should be enabled. default: false |
extensions.http.hsts | object | Configuration settings for Strict-Transport-Security |
extensions.http.customHeaders | object | Allows you to set custom headers in the HTTP response, ex. X-Content-Type-Options. |
extensions.queues | object | Configuration settings for 'queue' triggers. |
extensions.queues.maxPollingInterval | string | The maximum interval between queue polls. Minimum is 00:00:00.100 (100 ms). default: "00:00:02" |
extensions.queues.visibilityTimeout | string | The time interval between retries when processing of a message fails. default: "00:00:00" |
extensions.queues.batchSize | integer | The number of queue messages that the Functions runtime retrieves simultaneously and processes in parallel. When the number being processed gets down to the `newBatchThreshold`, the runtime gets another batch and starts processing those default: 16 |
extensions.queues.maxDequeueCount | integer | The number of times to try processing a message before moving it to the poison queue default: 5 |
extensions.queues.newBatchThreshold | integer | The threshold at which a new batch of messages will be fetched. The default is batchSize/2. |
extensions.queues.messageEncoding | string | This setting is only available in extension version 5.0.0 and higher. It represents the encoding format for messages. one of: "base64", "none" |
extensions.sendGrid | object | — |
extensions.sendGrid.from | string | The sender's email address across all functions. |
extensions.serviceBus | oneOf | Configuration settings for 'serviceBus' triggers. default: null |
extensions.eventHubs | oneOf | Configuration settings for 'eventHub' triggers. |
extensions.durableTask | object | Configuration settings for 'orchestration'/'activity' triggers. |
extensions.durableTask.hubName | string | Alternate task hub names can be used to isolate multiple Durable Functions applications from each other, even if they're using the same storage backend. default: "DurableFunctionsHub" |
extensions.durableTask.storageProvider | object | — |
extensions.durableTask.tracing | object | — |
extensions.durableTask.notifications | object | — |
extensions.durableTask.maxConcurrentActivityFunctions | integer | The maximum number of activity functions that can be processed concurrently on a single host instance. default: 10 |
extensions.durableTask.maxConcurrentOrchestratorFunctions | integer | The maximum number of orchestrator functions that can be processed concurrently on a single host instance. default: 10 |
extensions.durableTask.extendedSessionsEnabled | boolean | — |
extensions.durableTask.extendedSessionIdleTimeoutInSeconds | integer | — |
extensions.durableTask.useAppLease | boolean | When set to true, apps will require acquiring an app-level blob lease before processing task hub messages. default: true |
extensions.durableTask.useGracefulShutdown | boolean | Enable gracefully shutting down to reduce the chance of host shutdowns failing in-process function executions. default: false |
extensions.durableTask.maxEntityOperationBatchSize | integer | The maximum number of entity operations that are processed as a batch. If set to 1, batching is disabled, and each operation message is processed by a separate function invocation. default: 50 |
extensions.durableTask.useTablePartitionManagement | boolean | — default: false |
extensions.cosmosDB | object | Configuration settings for Azure Cosmos DB bindings and triggers. |
extensions.cosmosDB.connectionMode | enum | ConnectionMode to be used on the DocumentClients. default: "Gateway"one of: "Gateway", "Direct" |
extensions.cosmosDB.protocol | enum | Protocol to be used on the DocumentClients. default: "Https"one of: "Https", "Tcp" |
extensions.cosmosDB.leaseOptions | object | — |
extensions.blobs | object | — |
extensions.blobs.maxDegreeOfParallelism | integer | The number of concurrent invocations allowed for each blob-triggered function. |
extensions.blobs.poisonBlobThreshold | integer | The number of times to try processing a message before moving it to the poison queue. default: 5 |
extensions.mcp | object | Configuration settings for 'mcp' triggers. |
extensions.mcp.instructions | string | Describes to clients how to access the remote MCP server. |
extensions.mcp.serverName | string | A friendly name for the remote MCP server. |
extensions.mcp.serverVersion | string | Current version of the remote MCP server. |
extensions.mcp.encryptClientState | boolean | Determines if client state is encrypted. Defaults to true. Setting to false may be useful for debugging and test scenarios but isn't recommended for production. default: true |
extensions.mcp.messageOptions | object | COptions object for the message endpoint in the SSE transport. |
extensions.mcp.system | object | COptions object for the message endpoint in the SSE transport. |
concurrency | object | Configuration settings for dynamic concurrency |
concurrency.dynamicConcurrencyEnabled | boolean | Enables or disables dynamic concurrency for function apps. default: true |
concurrency.snapshotPersistenceEnabled | boolean | Enables or disables the learned concurrency values persisting in storage. default: true |
sendCanceledInvocationsToWorker | boolean | Where the language worker supports 'Cancellation', send canceled invocations to the worker. If not set, defaults to true. default: true |
telemetryMode | const | Used to enable output of logs and traces in an OpenTelemetry output format to one or more endpoints that support OpenTelemetry. |
configurationProfile | string | Configuration profile to use for the Function App. Settings defined by the configuration profile will be implicitly applied to the Function App. |
Audit
What we found in this schema
- Declared draft: draft-07
- Validates cleanly against its own meta-schema.
- 270 properties, 85% carrying a description, max nesting depth 13.
Standards
Specification sections for the keywords in this schema
| Keyword | Document | Section |
|---|---|---|
$ref | JSON Schema Core, draft 2020-12 | §8.2.3.1 — Direct References with "$ref" |
additionalProperties | JSON Schema Core, draft 2020-12 | §10.3.2.3 — "additionalProperties" |
const | JSON Schema Validation, draft 2020-12 | §6.1.3 — "const" |
default | JSON Schema Validation, draft 2020-12 | §9.2 — "default" |
description | JSON Schema Validation, draft 2020-12 | §9.1 — "title" and "description" |
enum | JSON Schema Validation, draft 2020-12 | §6.1.2 — "enum" |
examples | JSON Schema Validation, draft 2020-12 | §9.5 — "examples" |
items | JSON Schema Core, draft 2020-12 | §10.3.1.2 — "items" |
maximum | JSON Schema Validation, draft 2020-12 | §6.2.2 — "maximum" |
minLength | JSON Schema Validation, draft 2020-12 | §6.3.2 — "minLength" |
minimum | JSON Schema Validation, draft 2020-12 | §6.2.4 — "minimum" |
oneOf | JSON Schema Core, draft 2020-12 | §10.2.1.3 — "oneOf" |
pattern | JSON Schema Validation, draft 2020-12 | §6.3.3 — "pattern" |
properties | JSON Schema Core, draft 2020-12 | §10.3.2.1 — "properties" |
required | JSON Schema Validation, draft 2020-12 | §6.5.3 — "required" |
type | JSON Schema Validation, draft 2020-12 | §6.1.1 — "type" |
uniqueItems | JSON Schema Validation, draft 2020-12 | §6.4.3 — "uniqueItems" |
Documents
- JSON Schema Core, draft 2020-12 — JSON Schema: A Media Type for Describing JSON Documents, A. Wright, H. Andrews, B. Hutton, G. Dennis, Eds., 2022. draft-bhutton-json-schema-01. An expired Internet-Draft with no formal standing in the IETF standards process; it is nonetheless the specification of record for JSON Schema 2020-12, published by json-schema.org.
- JSON Schema Validation, draft 2020-12 — JSON Schema Validation: A Vocabulary for Structural Validation of JSON, A. Wright, H. Andrews, B. Hutton, Eds., 2022.
- RFC 8259 (STD 90) — The JavaScript Object Notation (JSON) Data Interchange Format, T. Bray, Ed., 2017. The format a schema describes.
- RFC 6901 — JavaScript Object Notation (JSON) Pointer. Defines the pointer syntax used by $ref fragments and the ~0 / ~1 escapes.
Source
Attribution
This schema comes from SchemaStore, distributed under the Apache License 2.0. Copyright 2015–present Mads Kristensen and contributors. View the original file. The field table and audit on this page are generated by JSONTools.tools; the schema itself is unmodified.