Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Il supporto è terminato per la versione 1.x dell'runtime di Funzioni di Azure il 14 settembre 2026. Eseguire la migrazione delle app alla versione 4.x per il supporto completo.
Il file di metadati host.json contiene opzioni di configurazione che influiscono su tutte le funzioni in un'istanza dell'app per le funzioni. Questo articolo elenca le impostazioni disponibili per il runtime 1.x. Lo schema JSON è disponibile all'indirizzo http://json.schemastore.org/host.
Nota
Questo articolo preserva il riferimentohost.json per Funzioni di Azure runtime 1.x. Per altre informazioni storiche, consulta il riferimento legacy runtime 1.x. Per il riferimento host.json attuale, vedi host.json riferimento per Funzioni di Azure 2.x e successive.
Altre opzioni di configurazione di app per le funzioni sono gestite nelle impostazioni dell'app.
Alcune impostazioni host.json vengono usate solo nell'esecuzione in locale nel file local.settings.json.
File di esempio host.json
I file di esempio host.json seguenti hanno tutte le possibili opzioni specificate.
{
"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" ],
}
Le sezioni seguenti di questo articolo illustrano ogni proprietà di livello superiore. Tutte sono facoltative se non diversamente specificato.
aggregator
Specifica il numero di chiamate di funzione che vengono aggregate quando si esegue il calcolo della metrica per Application Insights.
{
"aggregator": {
"batchSize": 1000,
"flushTimeout": "00:00:30"
}
}
| Proprietà | Predefinito | Descrizione |
|---|---|---|
batchSize |
1000 | Numero massimo di richieste da aggregare. |
flushTimeout |
00:00:30 | Intervallo massimo da aggregare. |
Le invocazioni di funzioni vengono aggregate quando si raggiunge il primo dei due limiti.
Analisi delle applicazioni
Controlla le funzionalità di campionamento in Application Insights.
{
"applicationInsights": {
"sampling": {
"isEnabled": true,
"maxTelemetryItemsPerSecond" : 5
}
}
}
| Proprietà | Predefinito | Descrizione |
|---|---|---|
isEnabled |
true | Abilita o disabilita il campionamento. |
maxTelemetryItemsPerSecond |
5 | La soglia oltre la quale viene avviato il campionamento. |
DocumentDB
Impostazioni di configurazione per il trigger e le associazioni di Azure Cosmos DB.
{
"documentDB": {
"connectionMode": "Gateway",
"protocol": "Https",
"leaseOptions": {
"leasePrefix": "prefix1"
}
}
}
| Proprietà | Predefinito | Descrizione |
|---|---|---|
| GatewayMode | Portale | Modalità di connessione utilizzata dalla funzione durante la connessione al servizio Azure Cosmos DB. Le opzioni sono Direct e Gateway |
| Protocollo | Https | Protocollo di connessione utilizzato dalla funzione quando si esegue la connessione al servizio Azure Cosmos DB. Leggere qui per una spiegazione di entrambe le modalità |
| leasePrefix | n/d | Prefisso di lease da usare in tutte le funzioni in un'app. |
durableTask
Impostazioni di configurazione per Durable Functions.
In Funzioni di Azure runtime 1.x, la durableTask sezione si trova alla radice del file host.json. Le impostazioni disponibili dipendono dalla versione dell'estensione Durable Functions. Per il riferimento attuale della configurazione, vedi Durable Functions host.json impostazioni.
eventHub
Impostazioni di configurazione per i trigger e le associazioni dell'Event Hub.
funzioni
Un elenco di funzioni eseguite dall'host di lavoro. Una matrice vuota indica l’esecuzione di tutte le funzioni. Deve essere utilizzato solo in caso di esecuzione in locale. Nelle app per le funzioni in Azure è invece necessario seguire i passaggi descritti in Come disabilitare le funzioni in Funzioni di Azure per disabilitare funzioni specifiche anziché usare questa impostazione.
{
"functions": [ "QueueProcessor", "GitHubWebHook" ]
}
functionTimeout
Indica la durata del timeout per tutte le funzioni. In un piano di consumo serverless l'intervallo valido va da 1 secondo a 10 minuti e il valore predefinito è 5 minuti. In un piano di servizio app non esiste alcun limite complessivo e il valore predefinito è Null, che indica che non esiste alcun timeout.
{
"functionTimeout": "00:05:00"
}
healthMonitor
Impostazioni di configurazione per Host Health Monitor.
{
"healthMonitor": {
"enabled": true,
"healthCheckInterval": "00:00:10",
"healthCheckWindow": "00:02:00",
"healthCheckThreshold": 6,
"counterThreshold": 0.80
}
}
| Proprietà | Predefinito | Descrizione |
|---|---|---|
| Enabled | true | Indica se la funzionalità è abilitata. |
| healthCheckInterval | 10 secondi | Intervallo di tempo tra i controlli dell'integrità periodici in background. |
| healthCheckWindow | 2 minuti | Intervallo temporale scorrevole utilizzato con l'impostazione healthCheckThreshold . |
| healthCheckThreshold | 6 | Numero massimo di volte in cui il controllo dell'integrità può non riuscire prima che venga avviato un riciclo host. |
| counterThreshold | 0,80 | Soglia a partire dalla quale un contatore delle prestazioni verrà considerato non integro. |
http
Impostazioni di configurazione per trigger HTTP e binding.
{
"http": {
"routePrefix": "api",
"maxOutstandingRequests": 200,
"maxConcurrentRequests": 100,
"dynamicThrottlesEnabled": true
}
}
| Proprietà | Predefinito | Descrizione |
|---|---|---|
| dynamicThrottlesEnabled | falso | Se abilitata, questa impostazione fa sì che la pipeline di elaborazione delle richieste controlli periodicamente contatori delle prestazioni del sistema come connessioni/thread/processi/memoria/cpu/ecc. e se uno di questi contatori supera una soglia elevata predefinita (80%), le richieste vengono rifiutate con una risposta "Troppo occupato" 429 fino a quando i contatori non tornano a livelli normali. |
| maxConcurrentRequests | illimitato (-1) |
Numero massimo di funzioni HTTP che verranno eseguite in parallelo. Ciò consente di controllare la concorrenza e pertanto di semplificare la gestione dell'uso delle risorse. Ad esempio, si potrebbe avere una funzione HTTP che usa molte risorse di sistema (memoria/cpu/sockets) in modo che causi problemi quando la concorrenza è troppo elevata. Oppure potrebbe essere presente una funzione che invia richieste a un servizio di terze parti e tali chiamate devono essere a frequenza limitata. In questi casi potrebbe risultare utile l'applicazione di una limitazione. |
| maxOutstandingRequests | illimitato (-1) |
Il numero massimo di richieste in sospeso che possono essere mantenute in un dato momento. Questo limite include le richieste che vengono messe in coda ma non hanno avviato l'esecuzione e le esecuzioni in corso. Le richieste in arrivo che superano questo limite vengono rifiutate con la risposta 429 "Occupato". Ciò consente ai chiamanti di usare strategie di ripetizione dei tentativi basate sul tempo e di controllare la latenza massima delle richieste. Questa impostazione controlla solo l'accodamento che si verifica all'interno del percorso di esecuzione dell'host dello script. Altre code, ad esempio la coda delle richieste di ASP.NET, continueranno a essere applicate e non saranno interessate da questa impostazione. |
| prefisso di percorso | api | Il prefisso della route che si applica a tutte le route. Utilizzare una stringa vuota per rimuovere il prefisso predefinito. |
id
ID univoco per l'host di processo. Può essere una GUID con lettera minuscola con trattini rimossi. Necessaria durante l'esecuzione locale. Durante l'esecuzione in Azure, è consigliabile non impostare un valore ID. Un ID viene generato automaticamente in Azure quando id viene omesso.
Se si condivide un account di archiviazione tra più app per le funzioni, assicurarsi che ogni app abbia un valore diverso per id. È possibile omettere la proprietà id o impostare manualmente la proprietà id di ogni app per le funzioni su un valore diverso. Il trigger timer usa un blocco dell'archiviazione per garantire che vi sia una sola istanza del timer quando un'app per le funzioni viene scalata orizzontalmente a più istanze. Se due app per le funzioni condividono la stessa proprietà id e ognuna usa un trigger timer, viene eseguito solo un timer.
{
"id": "9f4ea53c5136457d883d685e57164f08"
}
logger
Controlla le operazioni di filtro per i log scritti da un oggetto ILogger o context.log.
{
"logger": {
"categoryFilter": {
"defaultLevel": "Information",
"categoryLevels": {
"Host": "Error",
"Function": "Error",
"Host.Aggregator": "Information"
}
}
}
}
| Proprietà | Predefinito | Descrizione |
|---|---|---|
| filtro di categoria | n/d | Specifica il filtro per categoria |
| livelloPredefinito | Informazioni | Per qualsiasi categoria non specificata nella matrice categoryLevels, inviare i log a questo livello e oltre ad Application Insights. |
| categoryLevels | n/d | Una matrice di categorie che specifica il livello di log minimo per l'invio ad Application Insights per ogni categoria. La categoria specificata qui controlla tutte le categorie che iniziano con lo stesso valore, e i valori più lunghi hanno la precedenza. Nel file di esempio precedente host.json, tutte le categorie che iniziano "Host.Aggregator" eseguono il log al livello Information. Tutte le altre categorie che iniziano con "Host", ad esempio "Host.Executor", eseguono il log al livello Error. |
queues
Impostazione di configurazione per i trigger e le associazioni per code di archiviazione.
{
"queues": {
"maxPollingInterval": 2000,
"visibilityTimeout" : "00:00:30",
"batchSize": 16,
"maxDequeueCount": 5,
"newBatchThreshold": 8
}
}
| Proprietà | Predefinito | Descrizione |
|---|---|---|
| maxPollingInterval | 60000 | L'intervallo massimo, in millisecondi, tra i polling di coda. |
| visibilityTimeout | 0 | L'intervallo di tempo tra i tentativi se l'elaborazione di un messaggio ha esito negativo. |
| dimensione del batch | 16 | Il numero di messaggi in coda che il runtime di Funzioni recupera simultaneamente e di processi in parallelo. Quando il numero elaborato viene ridotto a newBatchThreshold, il runtime ottiene un altro batch e inizia l'elaborazione dei messaggi. Di conseguenza, il numero massimo di messaggi simultanei elaborati per ogni funzione è batchSize più newBatchThreshold. Questo limite si applica separatamente a ogni funzione attivata dalla coda. Se si vuole evitare l'esecuzione in parallelo per i messaggi ricevuti su una coda, è possibile impostare batchSize su 1. Tuttavia, questa impostazione elimina solo la concorrenza se l'app per le funzioni viene eseguita su una singola macchina virtuale (VM). Se l'app per le funzioni scala orizzontalmente più macchine virtuali, ogni macchina virtuale potrebbe eseguire un'istanza di ogni funzione attivata dalla coda.Il valore massimo per batchSize è 32. |
| maxDequeueCount | 5 | Il numero di volte per provare l'elaborazione di un messaggio prima di essere spostato nella coda non elaborabile. |
| newBatchThreshold | batchSize/2 | Ogni volta che il numero di messaggi elaborati simultaneamente viene ridotto a questo numero, il runtime recupera un altro batch. |
SendGrid
Impostazione di configurazione per il binding di output SendGrid.
{
"sendGrid": {
"from": "Contoso Group <admin@contoso.com>"
}
}
| Proprietà | Predefinito | Descrizione |
|---|---|---|
| da | n/d | Indirizzo di posta elettronica del mittente in tutte le funzioni. |
serviceBus
Impostazione di configurazione per i trigger e le associazioni dei bus di servizio.
{
"serviceBus": {
"maxConcurrentCalls": 16,
"prefetchCount": 100,
"autoRenewTimeout": "00:05:00",
"autoComplete": true
}
}
| Proprietà | Predefinito | Descrizione |
|---|---|---|
| maxConcurrentCalls | 16 | Il numero massimo di chiamate simultanee al callback che il message pump deve avviare. Per impostazione predefinita, il runtime di Funzioni elabora più messaggi contemporaneamente. Per fare in modo che il runtime elabori un solo messaggio della coda o dell'argomento alla volta, impostare maxConcurrentCalls su 1. |
| prefetchCount | n/d | Il valore predefinito di PrefetchCount che verrà utilizzato per il ServiceBusReceiver sottostante. |
| autoRenewTimeout | 00:05:00 | La durata massima entro il quale il blocco del messaggio verrà rinnovato automaticamente. |
| Completamento automatico | true | Se true, il trigger completa automaticamente l'elaborazione del messaggio al completamento dell'esecuzione dell'operazione. Se false, è responsabilità della funzione completare il messaggio prima della restituzione. |
singleton
Impostazioni di configurazione per il comportamento di blocco Singleton. Per ulteriori informazioni, vedere il problema su GitHub relativo al supporto singleton.
{
"singleton": {
"lockPeriod": "00:00:15",
"listenerLockPeriod": "00:01:00",
"listenerLockRecoveryPollingInterval": "00:01:00",
"lockAcquisitionTimeout": "00:01:00",
"lockAcquisitionPollingInterval": "00:00:03"
}
}
| Proprietà | Predefinito | Descrizione |
|---|---|---|
| periodo di blocco | 00:00:15 | Il periodo per cui vengono eseguiti blocchi a livello di funzione. I lucchetti si rinnovano automaticamente. |
| listenerLockPeriod | 00:01:00 | Il periodo per cui vengono acquisiti blocchi di listener. |
| listenerLockRecoveryPollingInterval | 00:01:00 | L'intervallo di tempo utilizzato per il ripristino di un blocco listener se non è stato possibile acquisire un blocco di listener all'avvio. |
| lockAcquisitionTimeout | 00:01:00 | La quantità massima di tempo per cui il runtime tenta di acquisire un blocco. |
| lockAcquisitionPollingInterval | n/d | L'intervallo tra i tentativi di acquisizione di un blocco. |
tracing
Versione 1.x
Le impostazioni di configurazione per i log creati usando un oggetto TraceWriter. Per altre informazioni, vedere [Registrazione C#].
{
"tracing": {
"consoleLevel": "verbose",
"fileLoggingMode": "debugOnly"
}
}
| Proprietà | Predefinito | Descrizione |
|---|---|---|
| consoleLevel | Informazioni | Il livello di traccia per la registrazione della console. Le opzioni sono: off, error, warning, info e verbose. |
| fileLoggingMode | debugOnly | Il livello di traccia per la registrazione di file. Le opzioni sono never, always, debugOnly. |
watchDirectories
Un insieme di directory di codice condiviso da monitorare per eventuali modifiche. Assicura che quando viene modificato il codice in queste directory, le modifiche vengono accolte dalle tue funzioni.
{
"watchDirectories": [ "Shared" ]
}