Informazioni di riferimento su host.json per Funzioni di Azure 2.x e versioni successive

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 a partire dalla versione 2.x del runtime di Funzioni di Azure.

Nota

Questo articolo è per Funzioni di Azure versioni 2.x e successive. Per informazioni di riferimento su host.json in Funzioni 1.x, vedere Informazioni di riferimento su host.json per Funzioni di Azure 1.x.

Altre opzioni di configurazione dell'app per le funzioni vengono gestite a seconda della posizione in cui viene eseguita l'app per le funzioni:

Le configurazioni in host.json correlate alle associazioni vengono applicate allo stesso modo a ogni funzione nell'app per le funzioni.

È anche possibile eseguire l'override o applicare le impostazioni per ogni ambiente usando le impostazioni dell'applicazione.

File di esempio host.json

Il seguente file host.json di esempio per la versione 2.x+ include tutte le possibili opzioni specificate (escluse quelle per l'uso interno).

{
    "version": "2.0",
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    },
    "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        },
    "extensions": {
        "blobs": {},
        "cosmosDb": {},
        "durableTask": {},
        "eventHubs": {},
        "http": {},
        "queues": {},
        "sendGrid": {},
        "serviceBus": {}
    },
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[1.*, 2.0.0)"
    },
    "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" : 20,
              "evaluationInterval": "01:00:00",
              "initialSamplingPercentage": 100.0, 
              "samplingPercentageIncreaseTimeout" : "00:00:01",
              "samplingPercentageDecreaseTimeout" : "00:00:01",
              "minSamplingPercentage": 0.1,
              "maxSamplingPercentage": 100.0,
              "movingAverageRatio": 1.0,
              "excludedTypes" : "Dependency;Event",
              "includedTypes" : "PageView;Trace"
            },
            "dependencyTrackingOptions": {
                "enableSqlCommandTextInstrumentation": true
            },
            "enableLiveMetrics": true,
            "enableDependencyTracking": true,
            "enablePerformanceCountersCollection": true,            
            "httpAutoCollectionOptions": {
                "enableHttpTriggerExtendedInfoCollection": true,
                "enableW3CDistributedTracing": true,
                "enableResponseHeaderInjection": true
            },
            "snapshotConfiguration": {
                "agentEndpoint": null,
                "captureSnapshotMemoryWeight": 0.5,
                "failedRequestLimit": 3,
                "handleUntrackedExceptions": true,
                "isEnabled": true,
                "isEnabledInDeveloperMode": false,
                "isEnabledWhenProfiling": true,
                "isExceptionSnappointsEnabled": false,
                "isLowPrioritySnapshotUploader": true,
                "maximumCollectionPlanSize": 50,
                "maximumSnapshotsRequired": 3,
                "problemCounterResetInterval": "24:00:00",
                "provideAnonymousTelemetry": true,
                "reconnectInterval": "00:15:00",
                "shadowCopyFolder": null,
                "shareUploaderProcess": true,
                "snapshotInLowPriorityThread": true,
                "snapshotsPerDayLimit": 30,
                "snapshotsPerTenMinutesLimit": 1,
                "tempFolder": null,
                "thresholdForSnapshotting": 1,
                "uploaderProxy": null
            }
        }
    },
    "managedDependency": {
        "enabled": true
    },
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    },
    "watchDirectories": [ "Shared", "Test" ],
    "watchFiles": [ "myFile.txt" ]
}

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 chiamate di funzione vengono aggregate quando il primo dei due limiti viene raggiunto.

applicationInsights

Questa impostazione è un elemento figlio di logging.

Controlla le opzioni per Application Insights, incluse le opzioni di campionamento.

Per la struttura JSON completa, vedere il file host.json di esempio precedente.

Nota

Il campionamento di log potrebbe non consentire di visualizzare alcune esecuzioni nel pannello monitoraggio di Application Insights. Per evitare il campionamento dei log, aggiungere excludedTypes: "Request" al samplingSettings valore.

Proprietà Predefinito Descrizione
campionamentoSettings n/d Vedere applicationInsights.samplingSettings.
dependencyTrackingOptions n/d Vedere applicationInsights.dependencyTrackingOptions.
enableLiveMetrics true Abilita la raccolta delle metriche live.
enableDependencyTracking true Abilita il rilevamento delle dipendenze.
enablePerformanceCountersCollection true Abilita la raccolta di contatori delle prestazioni Kudu.
liveMetricsInitializationDelay 00:00:15 Solo per uso interno.
httpAutoCollectionOptions n/d Vedere applicationInsights.httpAutoCollectionOptions.
snapshotConfiguration n/d Vedere applicationInsights.snapshotConfiguration.

applicationInsights.samplingSettings

Per altre informazioni su queste impostazioni, vedere Campionamento in Application Insights.

Proprietà Predefinito Descrizione
isEnabled true Abilita o disabilita il campionamento.
maxTelemetryItemsPerSecond 20 Numero di elementi di telemetria registrati al secondo in ogni host del server. Se l'app viene eseguita in molti host, ridurre questo valore per rimanere all'interno della frequenza complessiva del traffico.
evaluationInterval 01:00:00 Intervallo in cui viene rivalutata la frequenza corrente dei dati di telemetria. La valutazione viene eseguita come media mobile. Potrebbe essere necessario ridurre questo intervallo se la telemetria è responsabile di burst improvvisi.
initialSamplingPercentage 100.0 La percentuale di campionamento iniziale applicata all'inizio del processo di campionamento per variare dinamicamente la percentuale. Non ridurre il valore durante il debug.
campionamentoPercentageIncreaseTimeout 00:00:01 Quando il valore percentuale di campionamento cambia, questa proprietà determina quanto tempo dopo Application Insights può generare nuovamente la percentuale di campionamento per acquisire più dati.
campionamentoPercentageDecreaseTimeout 00:00:01 Quando il valore percentuale di campionamento cambia, questa proprietà determina quanto tempo dopo Application Insights può ridurre la percentuale di campionamento per acquisire meno dati.
minSamplingPercentage 0,1 Poiché la percentuale di campionamento varia, questa proprietà determina la percentuale minima di campionamento consentita.
maxSamplingPercentage 100.0 Poiché la percentuale di campionamento varia, questa proprietà determina la percentuale massima di campionamento consentita.
movingAverageRatio 1,0 Nel calcolo della media mobile, peso assegnato al valore più recente. Usare un valore uguale o inferiore a 1. I valori più bassi rendono l'algoritmo meno reattivo alle modifiche improvvise.
excludedTypes Null Elenco delimitato da punti e virgola di tipi che non si desidera campionare. I tipi riconosciuti sono: Dependency, Event, PageViewException, Request, e Trace. Tutte le istanze dei tipi specificati vengono trasmesse; vengono campionati i tipi non specificati.
includedTypes Null Elenco delimitato da punti e virgola di tipi che si desidera campionare; un elenco vuoto implica tutti i tipi. Tipo elencato nei excludedTypes tipi di override elencati qui. I tipi riconosciuti sono: Dependency, Event, PageViewException, Request, e Trace. Vengono campionate istanze dei tipi specificati; i tipi non specificati o impliciti vengono trasmessi senza campionamento.

applicationInsights.httpAutoCollectionOptions

Proprietà Predefinito Descrizione
enableHttpTriggerExtendedInfoCollection true Abilita o disabilita le informazioni estese sulle richieste HTTP per i trigger HTTP: intestazioni di correlazione delle richieste in ingresso, supporto delle chiavi di strumentazione multipla, metodo HTTP, percorso e risposta.
enableW3CDistributedTracing true Abilita o disabilita il supporto del protocollo di traccia distribuita W3C e attiva lo schema di correlazione legacy. Abilitato per impostazione predefinita se enableHttpTriggerExtendedInfoCollection è true. Se enableHttpTriggerExtendedInfoCollection è false, questo flag si applica solo alle richieste in uscita, non alle richieste in ingresso.
enableResponseHeaderMakection true Abilita o disabilita l'inserimento di intestazioni di correlazione multicomponenti nelle risposte. L'abilitazione dell'inserimento consente ad Application Insights di costruire una mappa delle applicazioni a quando vengono usate diverse chiavi di strumentazione. Abilitato per impostazione predefinita se enableHttpTriggerExtendedInfoCollection è true. Questa impostazione non si applica se enableHttpTriggerExtendedInfoCollection è false.

applicationInsights.dependencyTrackingOptions

Proprietà Predefinito Descrizione
enableSqlCommandTextInstrumentation false Abilita la raccolta del testo completo delle query SQL, che è disabilitato per impostazione predefinita. Per altre informazioni sulla raccolta di testo della query SQL, vedere Rilevamento SQL avanzato per ottenere query SQL complete.

applicationInsights.snapshotConfiguration

Per altre informazioni sugli snapshot, vedere Eseguire il debug degli snapshot sulle eccezioni nelle app .NET e Risolvere i problemi relativi all'abilitazione di Snapshot Debugger di Application Insights o alla visualizzazione degli snapshot.

Proprietà Predefinito Descrizione
agentEndpoint Null Endpoint usato per connettersi al servizio Snapshot Debugger di Application Insights. Se Null, viene usato un endpoint predefinito.
captureSnapshotMemoryWeight 0.5 Peso assegnato alle dimensioni correnti della memoria del processo durante il controllo della quantità di memoria sufficiente per creare uno snapshot. Il valore previsto è maggiore di 0 frazione corretta (0 < CaptureSnapshotMemoryWeight < 1).
failedRequestLimit 3 Limite al numero di richieste non riuscite per richiedere snapshot prima che il processore di telemetria sia disabilitato.
handleUntrackedExceptions true Abilita o disabilita il rilevamento delle eccezioni che non vengono rilevate dai dati di telemetria di Application Insights.
isEnabled true Abilita o disabilita la raccolta di snapshot
isEnabledInDeveloperMode false Abilita o disabilita la raccolta snapshot è abilitata in modalità sviluppatore.
isEnabledWhenProfiling true Abilita o disabilita la creazione di snapshot anche se Application Insights Profiler raccoglie una sessione di profilatura dettagliata.
isExceptionSnappointsEnabled false Abilita o disabilita il filtro delle eccezioni.
isLowPrioritySnapshotUploader true Determina se eseguire il processo SnapshotUploader al di sotto della priorità normale.
maximumCollectionPlanSize 50 Numero massimo di problemi che è possibile tenere traccia in qualsiasi momento in un intervallo compreso tra uno e 9999.
maximumSnapshotsRequired 3 Numero massimo di snapshot raccolti per un singolo problema, in un intervallo compreso tra uno e 999. Un problema può essere considerato come una singola istruzione throw nell'applicazione. Quando il numero di snapshot raccolti per un problema raggiunge questo valore, non verranno raccolti altri snapshot per tale problema finché i contatori dei problemi non vengono reimpostati (vedere problemCounterResetInterval) e il thresholdForSnapshotting limite viene raggiunto di nuovo.
problemCounterResetInterval 24:00:00 Frequenza con cui reimpostare i contatori dei problemi in un intervallo compreso tra un minuto e sette giorni. Quando viene raggiunto questo intervallo, tutti i conteggi dei problemi vengono reimpostati su zero. I problemi esistenti che hanno già raggiunto la soglia per l'esecuzione di snapshot, ma non hanno ancora generato il numero di snapshot in maximumSnapshotsRequired, rimangono attivi.
provideAnonymousTelemetry true Determina se inviare dati di telemetria di utilizzo e errore anonimi a Microsoft. Questi dati di telemetria possono essere usati se si contatta Microsoft per risolvere i problemi relativi al debugger snapshot. Viene usato anche per monitorare i modelli di utilizzo.
reconnectInterval 00:15:00 Frequenza di riconnessione all'endpoint snapshot debugger. L'intervallo consentito è di un minuto a un giorno.
shadowCopyFolder Null Specifica la cartella da utilizzare per la copia shadow dei file binari. In caso contrario, le cartelle specificate dalle variabili di ambiente seguenti vengono tentate in ordine: Fabric_Folder_App_Temp, LOCALAPPDATA, APPDATA, TEMP.
shareUploaderProcess true Se true, solo un'istanza di SnapshotUploader raccoglie e carica snapshot per più app che condividono InstrumentationKey. Se impostato su false, SnapshotUploader sarà univoco per ogni tupla (ProcessName, InstrumentationKey).
snapshotInLowPriorityThread true Determina se elaborare o meno gli snapshot in un thread con priorità di I/O bassa. La creazione di uno snapshot è un'operazione rapida, ma, per caricare uno snapshot nel servizio Snapshot Debugger, deve prima essere scritta su disco come minidump. Ciò avviene nel processo SnapshotUploader. L'impostazione di questo valore su true usa operazioni di I/O con priorità bassa per scrivere il minidump, che non competerà con l'applicazione per le risorse. L'impostazione di questo valore su false accelera la creazione di minidump a scapito del rallentamento dell'applicazione.
snapshotsPerDayLimit 30 Numero massimo di snapshot consentiti in un giorno (24 ore). Questo limite viene applicato anche sul lato del servizio Application Insights. I caricamenti sono limitati a 50 al giorno per ogni applicazione (vale a dire, per chiave di strumentazione). Questo valore consente di impedire la creazione di snapshot aggiuntivi che alla fine verranno rifiutati durante il caricamento. Un valore pari a zero rimuove completamente il limite, che non è consigliato.
snapshotsPerTenMinutesLimit 1 Numero massimo di snapshot consentiti in 10 minuti. Anche se non esiste alcun limite superiore per questo valore, prestare attenzione ad aumentarlo nei carichi di lavoro di produzione perché potrebbe influire sulle prestazioni dell'applicazione. La creazione di uno snapshot è veloce, ma la creazione di un minidump dello snapshot e il caricamento nel servizio Snapshot Debugger è un'operazione molto più lenta che compete con l'applicazione per le risorse (CPU e I/O).
tempFolder Null Specifica la cartella in cui scrivere minidump e file di log del caricatore. Se non è impostato, viene usato %TEMP%\Dumps .
thresholdForSnapshotting 1 Quante volte Application Insights deve visualizzare un'eccezione prima di richiedere snapshot.
uploaderProxy Null Esegue l'override del server proxy usato nel processo di caricamento snapshot. Potrebbe essere necessario usare questa impostazione se l'applicazione si connette a Internet tramite un server proxy. L'agente di raccolta snapshot viene eseguito all'interno del processo dell'applicazione e userà le stesse impostazioni proxy. Tuttavia, lo snapshot Uploader viene eseguito come processo separato e potrebbe essere necessario configurare manualmente il server proxy. Se questo valore è Null, Snapshot Collector tenterà di individuare automaticamente l'indirizzo del proxy esaminando System.Net.WebRequest.DefaultWebProxy e passando il valore a Snapshot Uploader. Se questo valore non è Null, la funzione automatica non viene usata e il server proxy specificato qui verrà usato nel caricatore snapshot.

blob

Le impostazioni di configurazione sono disponibili in Trigger e associazioni del BLOB di archiviazione.

console

Questa impostazione è un elemento figlio di logging. Controlla la registrazione nella console quando non è attiva la modalità di debug.

{
    "logging": {
    ...
        "console": {
          "isEnabled": false,
          "DisableColors": true
        },
    ...
    }
}
Proprietà Predefinito Descrizione
DisableColors false Elimina la formattazione dei log nei log del contenitore in Linux. Impostare su true se vengono visualizzati caratteri di controllo ANSI indesiderati nei log del contenitore durante l'esecuzione in Linux.
isEnabled false Abilita o disabilita la registrazione nella console.

Azure Cosmos DB

Le impostazioni di configurazione sono disponibili in Trigger e associazioni di Azure Cosmos DB.

customHandler

Impostazioni di configurazione per un gestore personalizzato. Per altre informazioni, vedere Funzioni di Azure gestori personalizzati.

"customHandler": {
  "description": {
    "defaultExecutablePath": "server",
    "workingDirectory": "handler",
    "arguments": [ "--port", "%FUNCTIONS_CUSTOMHANDLER_PORT%" ]
  },
  "enableForwardingHttpRequest": false
}
Proprietà Predefinito Descrizione
defaultExecutablePath n/d Eseguibile da avviare come processo del gestore personalizzato. È un'impostazione obbligatoria quando si usano gestori personalizzati e il relativo valore è relativo alla radice dell'app per le funzioni.
Workingdirectory radice dell'app per le funzioni Directory di lavoro in cui avviare il processo del gestore personalizzato. Si tratta di un'impostazione facoltativa e il relativo valore è relativo alla radice dell'app per le funzioni.
argomenti n/d Matrice di argomenti della riga di comando da passare al processo del gestore personalizzato.
enableForwardingHttpRequest false Se impostato, tutte le funzioni costituite da un solo trigger HTTP e l'output HTTP vengono inoltrati alla richiesta HTTP originale anziché al payload della richiesta del gestore personalizzato.

durableTask

L'impostazione di configurazione è reperibile nelle associazioni per Durable Functions.

Concorrenza

Abilita la concorrenza dinamica per associazioni specifiche nell'app per le funzioni. Per altre informazioni, vedere Concorrenza dinamica.

    { 
        "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        } 
    } 
Proprietà Predefinito Descrizione
dynamicConcurrencyEnabled false Abilita i comportamenti di concorrenza dinamici per tutti i trigger supportati da questa funzionalità, disattivati per impostazione predefinita.
snapshotPersistenceEnabled true I valori di concorrenza appresi vengono resi persistenti periodicamente nell'archiviazione in modo che le nuove istanze inizino da tali valori invece di partire da 1 e dover ripetere l'apprendimento.

eventHub

Le impostazioni di configurazione sono reperibili in Trigger e associazioni di Hub eventi.

Estensioni

Proprietà che restituisce un oggetto che contiene tutte le impostazioni di associazione specifiche, ad esempio http e eventHub.

extensionBundle

I bundle di estensioni consentono di aggiungere un set compatibile di estensioni di associazione di Funzioni all'app per le funzioni. Per altre informazioni, vedere Bundle di estensioni per lo sviluppo locale.

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

In extensionBundle sono disponibili le proprietà seguenti:

Proprietà Descrizione
id Spazio dei nomi per i bundle di estensioni di Funzioni di Azure Microsoft.
version Intervallo di versioni del bundle da installare. Il runtime di Funzioni sceglie sempre la versione massima consentita definita dall'intervallo o dall'intervallo di versioni. Ad esempio, un version intervallo di valori di consente tutte le versioni del [3.3.0, 4.0.0) bundle dalla versione 3.3.0 fino alla versione 4.0.0, ma non incluse. Per altre informazioni, vedere la notazione degli intervalli per specificare gli intervalli di versione.

functions

Un elenco di funzioni eseguite dall'host di processo. Una matrice vuota indica l’esecuzione di tutte le funzioni. Deve essere utilizzato solo in caso di esecuzione in locale. In app per le funzioni in Azure è necessario invece seguire i passaggi descritti in Come disabilitare le funzioni in Funzioni di Azure per disabilitare le funzioni specifiche invece di usare questa impostazione.

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

functionTimeout

Indica la durata del timeout per tutte le esecuzioni di funzioni. Segue il formato stringa dell'intervallo di tempo.

Tipo di piano Valore predefinito (min) Massimo (min)
Consumo 5 10
Premium1 30 -1 (senza vincoli)2
Dedicato (servizio app) 30 -1 (senza vincoli)2

1 L'esecuzione del piano Premium è garantita solo per 60 minuti, ma tecnicamente non associato.
2 Il valore indica -1 l'esecuzione senza vincoli, ma è consigliabile mantenere un limite superiore fisso.

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

healthMonitor

Impostazioni di configurazione per il monitoraggio integrità host.

{
    "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 Finestra temporale scorrevole usata in combinazione 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

Le impostazioni di configurazione sono reperibili in Trigger e associazioni HTTP.

registrazione

Controlla i comportamenti di registrazione dell'app per le funzioni, tra cui Application Insights.

"logging": {
    "fileLoggingMode": "debugOnly",
    "logLevel": {
      "Function.MyFunction": "Information",
      "default": "None"
    },
    "console": {
        ...
    },
    "applicationInsights": {
        ...
    }
}
Proprietà Predefinito Descrizione
fileLoggingMode debugOnly Determina il comportamento di registrazione dei file durante l'esecuzione in Azure. Le opzioni sono never, alwayse debugOnly. Questa impostazione non viene usata durante l'esecuzione in locale. Quando possibile, è consigliabile usare Application Insights durante il debug delle funzioni in Azure. L'uso always di influisce negativamente sul comportamento di avvio a freddo dell'app e sulla velocità effettiva dei dati. L'impostazione predefinita debugOnly genera i file di log quando si esegue il debug usando il portale di Azure.
logLevel n/d Oggetto che definisce il filtro delle categorie di log per le funzioni nell'app. Questa impostazione consente di filtrare la registrazione per funzioni specifiche. Per altre informazioni, vedere Configurare i livelli di log.
console n/d Impostazione di registrazione nella console.
applicationInsights n/d Impostazione di ApplicationInsights.

managedDependency

La dipendenza gestita è una funzionalità attualmente supportata solo con le funzioni basate su PowerShell. Consente di gestire automaticamente le dipendenze dal servizio. Quando la enabled proprietà è impostata su true, il requirements.psd1 file viene elaborato. Le dipendenze vengono aggiornate quando vengono rilasciate versioni secondarie. Per altre informazioni, vedere Dipendenza gestita nell'articolo PowerShell.

{
    "managedDependency": {
        "enabled": true
    }
}

queues

Le impostazioni di configurazione sono reperibili in Trigger e associazioni di Archiviazione code.

sendGrid

Le impostazioni di configurazione sono reperibili in Trigger e associazioni di SendGrid.

serviceBus

Le impostazioni di configurazione sono reperibili in Trigger e associazioni del bus di servizio.

singleton

Impostazioni di configurazione per il comportamento di blocco Singleton. Per ulteriori informazioni, vedere il problema GitHub sul 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
lockPeriod 00:00:15 Il periodo per cui vengono eseguiti blocchi a livello di funzione. I blocchi 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 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 tenterà di acquisire un blocco.
lockAcquisitionPollingInterval n/d L'intervallo tra i tentativi di acquisizione di un blocco.

version

Questo valore indica la versione dello schema host.json. La stringa "version": "2.0" di versione è necessaria per un'app per le funzioni destinata al runtime v2 o a una versione successiva. Non sono presenti modifiche dello schema host.json tra v2 e v3.

watchDirectories

Un set di directory codice condivise da monitorare per le modifiche. Assicura che quando viene modificato il codice in tali directory, le modifiche vengono prelevate dalle funzioni.

{
    "watchDirectories": [ "Shared" ]
}

watchFiles

Matrice di uno o più nomi di file monitorati per le modifiche che richiedono il riavvio dell'app. Ciò garantisce che quando il codice in questi file viene modificato, gli aggiornamenti vengono raccolti dalle funzioni.

{
    "watchFiles": [ "myFile.txt" ]
}

Eseguire l'override dei valori host.json

Potrebbero essere presenti istanze in cui si desidera configurare o modificare impostazioni specifiche in un file host.json per un ambiente specifico, senza modificare il file host.json stesso. È possibile eseguire l'override di valori host.json specifici creando un valore equivalente come impostazione dell'applicazione. Quando il runtime trova un'impostazione dell'applicazione nel formato AzureFunctionsJobHost__path__to__setting, esegue l'override dell'impostazione host.json equivalente disponibile path.to.setting in JSON. Se espressa come impostazione dell'applicazione, il punto (.) usato per indicare che la gerarchia JSON viene sostituita da un carattere di sottolineatura doppia (__).

Si supponga, ad esempio, di voler disabilitare il campionamento di Application Insights durante l'esecuzione in locale. Se è stato modificato il file host.json locale per disabilitare Application Insights, questa modifica potrebbe essere eseguita tramite push nell'app di produzione durante la distribuzione. Il modo più sicuro per eseguire questa operazione consiste nel creare invece un'impostazione dell'applicazione come "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false" nel local.settings.json file. Questo file può essere visualizzato nel file seguente local.settings.json , che non viene pubblicato:

{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "{storage-account-connection-string}",
        "FUNCTIONS_WORKER_RUNTIME": "{language-runtime}",
        "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false"
    }
}

L'override delle impostazioni host.json usando le variabili di ambiente segue le convenzioni di denominazione ASP.NET Core. Quando la struttura dell'elemento include una matrice, l'indice matrice numerico deve essere considerato come un nome di elemento aggiuntivo in questo percorso. Per altre informazioni, vedere Denominazione delle variabili di ambiente.

Passaggi successivi