Informazioni di riferimentohost.json per Funzioni di Azure 1.x

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

Passaggi successivi