Riferimento per le impostazioni dell’app per Funzioni di Azure
Le impostazioni dell'applicazione in un'app per le funzioni contengono le opzioni di configurazione che interessano tutte le funzioni della specifica app per le funzioni. Si accede a tali impostazioni come variabili di ambiente. In questo articolo sono elencate le impostazioni dell’app che sono disponibili nelle app per le funzioni.
Esistono diversi modi per aggiungere, aggiornare ed eliminare le impostazioni dell'app per le funzioni:
- Nel portale di Azure.
- Tramite l'uso dell'interfaccia della riga di comando di Azure
- Usando Azure PowerShell.
Le modifiche apportate alle impostazioni dell'app per le funzioni richiedono il riavvio dell'app per le funzioni.
In questo articolo, i valori di esempio delle stringhe di connessione vengono troncati per questioni di leggibilità.
Poiché Funzioni di Azure usa la piattaforma del servizio app Azure per l'hosting, è possibile trovare alcune impostazioni rilevanti per l'hosting dell'app per le funzioni documentate in Variabili di ambiente e impostazioni dell'app in app Azure Servizio.
Considerazioni sulle impostazioni dell'app
Quando si usano le impostazioni dell'app, è consigliabile tenere presenti le considerazioni seguenti:
Le modifiche apportate alle impostazioni dell'app per le funzioni richiedono il riavvio dell'app per le funzioni.
Nei nomi delle impostazioni, il carattere del trattino basso doppio (
__
) e i due punti (:
) sono considerati valori riservati. I trattini bassi doppi vengono interpretati come delimitatori gerarchici in Windows e Linux, mentre i due punti vengono interpretati nello stesso modo solo in Windows. Ad esempio, l'impostazioneAzureFunctionsWebHost__hostid=somehost_123456
viene interpretata come l'oggetto JSON seguente:"AzureFunctionsWebHost": { "hostid": "somehost_123456" }
In questo articolo vengono usati solo trattini bassi doppi poiché sono supportati in entrambi i sistemi operativi. La maggior parte delle impostazioni che supportano le connessioni di identità gestita usa i trattini bassi doppi.
Quando Funzioni viene eseguita in locale, le impostazioni dell'app vengono specificate nella raccolta
Values
in local.settings.json.Sono disponibili altre opzioni di configurazione delle impostazioni dell'app nel file host.json e nel file local.settings.json.
È possibile usare le impostazioni dell'applicazione per eseguire l'override dei valori delle impostazioni host.json senza dover modificare il file host.json stesso. Ciò è utile per gli scenari in cui è necessario configurare o modificare impostazioni di host.json specifiche per un ambiente specifico. In questo modo è anche possibile modificare le impostazioni host.json senza dover ripubblicare il progetto. Per altre informazioni, consultare l'articolo di riferimento su host.json.
Questo articolo illustra le impostazioni più rilevanti per le app per le funzioni. Poiché Funzioni di Azure viene eseguito nel servizio app, sono supportate anche altre impostazioni dell'applicazione. Per altre informazioni, vedere Variabili di ambiente e impostazioni dell'app in Servizio app di Azure.
Alcuni scenari richiedono anche l'uso delle impostazioni documentate nelle impostazioni del sito del servizio app.
La modifica delle impostazioni dell'applicazione del servizio app di sola lettura può impostare l'app per le funzioni in uno stato di mancata risposta.
Prestare attenzione all'aggiornamento delle impostazioni dell'applicazione usando le API REST, inclusi i modelli di Resource Manager. Poiché queste API sostituiscono le impostazioni dell'applicazione esistenti, è necessario includere tutte le impostazioni esistenti durante l'aggiunta o la modifica delle impostazioni usando le API REST o i modelli di Resource Manager. Se possibile, usare l'interfaccia della riga di comando di Azure o Azure PowerShell per usare le impostazioni dell'applicazione a livello di programmazione. Per altre informazioni, vedere Usare le impostazioni dell'applicazione.
APPINSIGHTS_INSTRUMENTATIONKEY
La chiave di strumentazione per Application Insights. Non usare sia APPINSIGHTS_INSTRUMENTATIONKEY
che APPLICATIONINSIGHTS_CONNECTION_STRING
. Se possibile, usare APPLICATIONINSIGHTS_CONNECTION_STRING
. Quando Application Insights viene eseguito in un cloud sovrano, è necessario usare APPLICATIONINSIGHTS_CONNECTION_STRING
. Per altre informazioni, vedere Come configurare il monitoraggio per Funzioni di Azure.
Chiave | Valore di esempio |
---|---|
APPINSIGHTS_INSTRUMENTATIONKEY | 55555555-af77-484b-9032-64f83bb83bb |
Non usare sia APPINSIGHTS_INSTRUMENTATIONKEY
che APPLICATIONINSIGHTS_CONNECTION_STRING
. È consigliabile usare APPLICATIONINSIGHTS_CONNECTION_STRING
.
APPLICATIONINSIGHTS_AUTHENTICATION_STRING
Consente l'accesso ad Application Insights usando l'autenticazione Microsoft Entra. Usare questa impostazione quando è necessario connettersi all'area di lavoro di Application Insights usando l'autenticazione di Microsoft Entra. Per altre informazioni, vedere Autenticazione di Microsoft Entra per Application Insights.
Quando si usa APPLICATIONINSIGHTS_AUTHENTICATION_STRING
, il valore specifico impostato dipende dal tipo di identità gestita:
Identità gestita | Valore impostazione |
---|---|
Assegnata dal sistema | Authorization=AAD |
Assegnata dall'utente | Authorization=AAD;ClientId=<USER_ASSIGNED_CLIENT_ID> |
Questo requisito di autenticazione viene applicato alle connessioni dall'host di Funzioni, dal debugger snapshot, dal profiler e da qualsiasi agente specifico del linguaggio. Per usare questa impostazione, l'identità gestita deve essere già disponibile nell'app per le funzioni, con un ruolo assegnato equivalente ad Autore delle metriche di monitoraggio.
Nota
Quando si usa APPLICATIONINSIGHTS_AUTHENTICATION_STRING
per connettersi ad Application Insights tramite l'autenticazione Microsoft Entra, è consigliabile anche disabilitare l'autenticazione locale per Application Insights. Questa configurazione richiede l'autenticazione con Microsoft Entra affinché i dati di telemetria vengano inseriti nell'area di lavoro.
APPLICATIONINSIGHTS_CONNECTION_STRING
La stringa di connessione per Application Insights. Non usare sia APPINSIGHTS_INSTRUMENTATIONKEY
che APPLICATIONINSIGHTS_CONNECTION_STRING
. Anche se l'uso di APPLICATIONINSIGHTS_CONNECTION_STRING
è consigliato in tutti i casi, è obbligatorio nei casi seguenti:
- Quando l'app per le funzioni richiede le personalizzazioni aggiunte supportate usando il stringa di connessione
- Quando l'istanza di Application Insights viene eseguita in un cloud sovrano, che richiede un endpoint personalizzato
Per altre informazioni, vedere Stringhe di connessione.
Chiave | Valore di esempio |
---|---|
APPLICATIONINSIGHTS_CONNECTION_STRING | InstrumentationKey=... |
Per connettersi ad Application Insights con l'autenticazione di Microsoft Entra, è necessario usare APPLICATIONINSIGHTS_AUTHENTICATION_STRING
.
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL
Importante
I proxy di Funzioni di Azure sono una funzionalità legacy per le versioni da 1.x a 3.x del runtime di Funzioni di Azure. Per altre informazioni sul supporto legacy nella versione 4.x, vedere Proxy di Funzioni.
Per impostazione predefinita, i proxy di Funzioni usano un collegamento per inviare chiamate API dai proxy direttamente alle funzioni della stessa app per le funzioni. Viene usato questo collegamento invece di creare una nuova richiesta HTTP. Questa impostazione consente di disabilitare tale comportamento del collegamento.
Chiave | valore | Descrizione |
---|---|---|
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL | true |
Le chiamate con un URL di back-end che punta alla funzione nell'app per le funzioni locale non verranno inviate direttamente alla funzione. Le richieste vengono invece indirizzate al front-end HTTP per l'app per le funzioni. |
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL | false |
Le chiamate con un URL di back-end che punta alla funzione nell'app per le funzioni locale vengono inoltrate direttamente alla funzione. false è il valore predefinito. |
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES
Importante
I proxy di Funzioni di Azure sono una funzionalità legacy per le versioni da 1.x a 3.x del runtime di Funzioni di Azure. Per altre informazioni sul supporto legacy nella versione 4.x, vedere Proxy di Funzioni.
Questa impostazione permette di controllare se i caratteri %2F
vengono decodificati come barre nei parametri di route quando vengono inseriti nell'URL di back-end.
Chiave | valore | Descrizione |
---|---|---|
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES | true |
I parametri di route con barre codificate vengono decodificati. |
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES | false |
Tutti i parametri di route vengono trasmessi senza modifiche, e ciò rappresenta il comportamento predefinito. |
Si consideri, ad esempio, il file proxies.json per un'app per le funzioni nel dominio myfunction.com
.
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"root": {
"matchCondition": {
"route": "/{*all}"
},
"backendUri": "example.com/{all}"
}
}
}
Quando AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES
è impostato su true
, l'URL example.com/api%2ftest
viene risolto in example.com/api/test
. Per impostazione predefinita, l'URL rimane invariato come example.com/test%2fapi
. Per altre informazioni, vedere la pagina relativa ai proxy delle funzioni.
AZURE_FUNCTIONS_ENVIRONMENT
Configura l'ambiente di hosting di runtime dell'app per le funzioni durante l'esecuzione in Azure. Questo valore viene letto durante l'inizializzazione e solo questi valori vengono rispettati dal runtime:
Valore | Descrizione |
---|---|
Production |
Rappresenta un ambiente di produzione, con registrazione ridotta e ottimizzazioni complete delle prestazioni. Si tratta dell'impostazione predefinita quando AZURE_FUNCTIONS_ENVIRONMENT non è impostato o è impostato su un valore non supportato. |
Staging |
Rappresenta un ambiente di gestione temporanea, ad esempio quando è in esecuzione in uno slot di staging. |
Development |
Un ambiente di sviluppo supporta la registrazione più dettagliata e altre ottimizzazioni ridotte delle prestazioni. Gli Azure Functions Core Tools impostano AZURE_FUNCTIONS_ENVIRONMENT su Development quando vengono eseguiti nel computer locale. Questa impostazione non può essere sottoposta a override nel file local.settings.json. |
Usare questa impostazione anziché ASPNETCORE_ENVIRONMENT
quando è necessario modificare l'ambiente di runtime in Azure in un valore diverso da Production
. Per altre informazioni, vedere Classe di avvio e metodi basati sull'ambiente.
Questa impostazione non è disponibile nella versione 1.x del runtime di Funzioni.
AzureFunctionsJobHost__*
Nelle versioni 2.x e successive del runtime di Funzioni, le impostazioni dell'applicazione possono eseguire l'override delle impostazioni host.json nell'ambiente corrente. Tali override vengono espressi come impostazioni dell'applicazione denominate AzureFunctionsJobHost__path__to__setting
. Per altre informazioni, vedere Eseguire l'override dei valori di host.json.
AzureFunctionsWebHost__hostid
Imposta l'ID host per una determinata app per le funzioni, che deve essere un ID univoco. Questa impostazione sostituisce il valore dell'ID host generato automaticamente per l'app. Usare questa impostazione solo quando è necessario evitare conflitti di ID host tra app per le funzioni che condividono lo stesso account di archiviazione.
L'ID host deve soddisfare i requisiti seguenti:
- Avere una lunghezza compresa tra 1 e 32 caratteri
- Contenere solo lettere minuscole, numeri e segni meno
- Non iniziare o terminare con un trattino
- Non contenere trattini consecutivi
Un modo semplice per generare un ID consiste nell'accettare un GUID, rimuovere i trattini e modificarlo in minuscolo, ad esempio convertendo il GUID 1835D7B5-5C98-4790-815D-072CC94C6F71
nel valore 1835d7b55c984790815d072cc94c6f71
.
Chiave | Valore di esempio |
---|---|
AzureFunctionsWebHost__hostid | myuniquefunctionappname123456789 |
Per altre informazioni, vedere Considerazioni sull'ID host.
AzureWebJobsDashboard
Questa impostazione è obsoleta ed è supportata solo quando è in esecuzione nella versione 1.x del runtime di Funzioni di Azure.
Stringa di connessione dell’account di archiviazione facoltativo per l'archiviazione dei log e la visualizzazione nella scheda Monitor nel portale. L'account di archiviazione deve essere un'istanza generica che supporta i BLOB, le code e le tabelle. Per altre informazioni, vedere Requisiti dell'account di archiviazione.
Chiave | Valore di esempio |
---|---|
AzureWebJobsDashboard | DefaultEndpointsProtocol=https;AccountName=... |
AzureWebJobsDisableHomepage
Il valore di true
disabilita l'impostazione predefinita per la pagina di destinazione per l'URL radice di un'app per le funzioni. Il valore predefinito è false
.
Chiave | Valore di esempio |
---|---|
AzureWebJobsDisableHomepage | true |
Quando questa impostazione dell’app viene omessa o impostata su false
, una pagina simile all'esempio seguente viene visualizzata in risposta all'URL <functionappname>.azurewebsites.net
.
AzureWebJobsDotNetReleaseCompilation
true
indica la modalità di utilizzo Release
durante la compilazione di codice .NET; false
significa usare la modalità debug. Il valore predefinito è true
.
Chiave | Valore di esempio |
---|---|
AzureWebJobsDotNetReleaseCompilation | true |
AzureWebJobsFeatureFlags
Un elenco delimitato da virgole di funzionalità beta da abilitare. Le funzionalità Beta abilitate per queste flag non sono pronte per la produzione, ma possono essere abilitate per l'utilizzo sperimentale prima di essere lanciate.
Chiave | Valore di esempio |
---|---|
AzureWebJobsFeatureFlags | feature1,feature2,EnableProxies |
Aggiungere EnableProxies
a questo elenco per riabilitare i proxy nella versione 4.x del runtime di Funzioni durante la pianificazione della migrazione a Gestione API di Azure. Per altre informazioni, vedere Riabilitare i proxy in Funzioni v4.x.
AzureWebJobsKubernetesSecretName
Indica la risorsa Segreti Kubernetes usata per l'archiviazione delle chiavi. Supportato solo quando è in esecuzione in Kubernetes. Per questa impostazione è necessario impostare AzureWebJobsSecretStorageType
su kubernetes
. Quando AzureWebJobsKubernetesSecretName
non è impostato, il repository viene considerato di sola lettura. In questo caso, i valori devono essere generati prima della distribuzione. Azure Functions Core Tools genera automaticamente i valori durante la distribuzione in Kubernetes.
Chiave | Valore di esempio |
---|---|
AzureWebJobsKubernetesSecretName | <SECRETS_RESOURCE> |
Per altre informazioni, vedere Gestire l'archiviazione delle chiavi.
AzureWebJobsSecretStorageKeyVaultClientId
L'ID client dell'identità gestita assegnata dall'utente o della registrazione dell'app usato per accedere all'insieme di credenziali in cui sono archiviate le chiavi. Per questa impostazione è necessario impostare AzureWebJobsSecretStorageType
su keyvault
. Supportato nella versione 4.x e nelle versioni successive del runtime di Funzioni.
Chiave | Valore di esempio |
---|---|
AzureWebJobsSecretStorageKeyVaultClientId | <CLIENT_ID> |
Per altre informazioni, vedere Gestire l'archiviazione delle chiavi.
AzureWebJobsSecretStorageKeyVaultClientSecret
Il segreto per l'ID client dell'identità gestita assegnata dall'utente o della registrazione dell'app usato per accedere all'insieme di credenziali in cui sono archiviate le chiavi. Per questa impostazione è necessario impostare AzureWebJobsSecretStorageType
su keyvault
. Supportato nella versione 4.x e nelle versioni successive del runtime di Funzioni.
Chiave | Valore di esempio |
---|---|
AzureWebJobsSecretStorageKeyVaultClientSecret | <CLIENT_SECRET> |
Per altre informazioni, vedere Gestire l'archiviazione delle chiavi.
AzureWebJobsSecretStorageKeyVaultName
Questa impostazione è deprecata ed è stata usata solo quando è in esecuzione nella versione 3.x del runtime di Funzioni di Azure.
Il nome di un'istanza dell'insieme di credenziali delle chiavi usata per archiviare le chiavi. Questa impostazione è stata usata solo nella versione 3.x del runtime di Funzioni, che non è più supportata. Per la versione 4.x, usare invece AzureWebJobsSecretStorageKeyVaultUri
. Per questa impostazione è necessario impostare AzureWebJobsSecretStorageType
su keyvault
.
L'insieme di credenziali deve avere un criterio di accesso corrispondente all'identità gestita assegnata dal sistema della risorsa di hosting. Il criterio di accesso deve concedere all'identità le autorizzazioni segrete seguenti: Get
, Set
, List
e Delete
.
Quando le funzioni vengono eseguite in locale, viene usata l'identità dello sviluppatore e le impostazioni devono trovarsi nel file local.settings.json.
Chiave | Valore di esempio |
---|---|
AzureWebJobsSecretStorageKeyVaultName | <VAULT_NAME> |
Per altre informazioni, vedere Gestire l'archiviazione delle chiavi.
AzureWebJobsSecretStorageKeyVaultTenantId
L'ID tenant della registrazione dell'app usata per accedere all'insieme di credenziali in cui sono archiviate le chiavi. Per questa impostazione è necessario impostare AzureWebJobsSecretStorageType
su keyvault
. Supportato nella versione 4.x e nelle versioni successive del runtime di Funzioni. Per altre informazioni, vedere Gestire l'archiviazione delle chiavi.
Chiave | Valore di esempio |
---|---|
AzureWebJobsSecretStorageKeyVaultTenantId | <TENANT_ID> |
AzureWebJobsSecretStorageKeyVaultUri
L'URI di un'istanza dell'insieme di credenziali delle chiavi usato per archiviare le chiavi. Supportato nella versione 4.x e nelle versioni successive del runtime di Funzioni. Questa è l'impostazione consigliata per l'uso di un'istanza dell'insieme di credenziali delle chiavi per l'archiviazione delle chiavi. Per questa impostazione è necessario impostare AzureWebJobsSecretStorageType
su keyvault
.
Il valore AzureWebJobsSecretStorageKeyVaultUri
deve corrispondere al valore completo dell'URI dell'insieme di credenziali visualizzato nella scheda Panoramica dell'insieme di credenziali delle chiavi, compreso https://
.
L'insieme di credenziali deve avere un criterio di accesso corrispondente all'identità gestita assegnata dal sistema della risorsa di hosting. Il criterio di accesso deve concedere all'identità le autorizzazioni segrete seguenti: Get
, Set
, List
e Delete
.
Quando le funzioni vengono eseguite in locale, viene usata l'identità dello sviluppatore e le impostazioni devono trovarsi nel file local.settings.json.
Chiave | Valore di esempio |
---|---|
AzureWebJobsSecretStorageKeyVaultUri | https://<VAULT_NAME>.vault.azure.net |
Per altre informazioni, vedere Usare i riferimenti a Key Vault per Funzioni di Azure.
AzureWebJobsSecretStorageSas
L'URL di firma di accesso condiviso di archiviazione BLOB per un secondo account di archiviazione usato per l'archiviazione delle chiavi. Per impostazione predefinita, Funzioni usa l'account impostato in AzureWebJobsStorage
. Quando si usa questa opzione di archiviazione segreta, assicurarsi che AzureWebJobsSecretStorageType
non sia impostata in modo esplicito o non sia impostata su blob
. Per altre informazioni, vedere Gestire l'archiviazione delle chiavi.
Chiave | Valore di esempio |
---|---|
AzureWebJobsSecretStorageSas | <BLOB_SAS_URL> |
AzureWebJobsSecretStorageType
Specifica il repository o il provider da utilizzare per l'archiviazione delle chiavi. Le chiavi vengono sempre crittografate prima di essere archiviate usando un segreto univoco per l'app per le funzioni.
Chiave | valore | Descrizione |
---|---|---|
AzureWebJobsSecretStorageType | blob |
Le chiavi vengono archiviate in un contenitore di archiviazione BLOB nell'account fornito dall'impostazione AzureWebJobsStorage . L'archiviazione BLOB è il comportamento predefinito quando AzureWebJobsSecretStorageType non è impostato.Per specificare un account di archiviazione diverso, usare l'impostazione AzureWebJobsSecretStorageSas per indicare l'URL di firma di accesso condiviso di un secondo account di archiviazione. |
AzureWebJobsSecretStorageType | files |
Le chiavi vengono salvate in modo permanente nel file system. Ciò corrisponde al funzionamento predefinito di Funzioni v1.x. |
AzureWebJobsSecretStorageType | keyvault |
Le chiavi vengono archiviate in un'istanza dell'insieme di credenziali delle chiavi impostata da AzureWebJobsSecretStorageKeyVaultName . |
AzureWebJobsSecretStorageType | kubernetes |
Supportato solo quando si esegue il runtime di Funzioni in Kubernetes. Quando AzureWebJobsKubernetesSecretName non è impostato, il repository viene considerato di sola lettura. In questo caso, i valori devono essere generati prima della distribuzione. Azure Functions Core Tools genera automaticamente i valori durante la distribuzione in Kubernetes. |
Per altre informazioni, vedere Gestire l'archiviazione delle chiavi.
AzureWebJobsStorage
Specifica la stringa di connessione per un account di archiviazione di Azure usato dal runtime di Funzioni per le normali operazioni. Alcuni usi di questo account di archiviazione da parte di Funzioni includono la gestione delle chiavi, la gestione dei trigger di tempo e i checkpoint di Hub eventi. L'account di archiviazione deve essere un'istanza generica che supporta i BLOB, le code e le tabelle. Per altre informazioni, vedere Requisiti dell'account di archiviazione.
Chiave | Valore di esempio |
---|---|
AzureWebJobsStorage | DefaultEndpointsProtocol=https;AccountName=... |
Anziché una stringa di connessione, è possibile usare una connessione basata su identità per questo account di archiviazione. Per maggiori informazioni, consultare la sezione Connessione all'archiviazione host con un'identità.
AzureWebJobsStorage__accountName
Quando si usa una connessione di archiviazione basata su identità, imposta il nome dell'account di archiviazione anziché usare la stringa di connessione in AzureWebJobsStorage
. Questa sintassi è univoca per AzureWebJobsStorage
e non può essere usata per altre connessioni basate su identità.
Chiave | Valore di esempio |
---|---|
AzureWebJobsStorage__accountName | <STORAGE_ACCOUNT_NAME> |
Per i cloud sovrani o quando si usa un DNS personalizzato, è invece necessario usare le impostazioni AzureWebJobsStorage__*ServiceUri
specifiche del servizio.
AzureWebJobsStorage__blobServiceUri
Quando si usa una connessione di archiviazione basata su identità, imposta l'URI del piano dati del servizio BLOB dell'account di archiviazione.
Chiave | Valore di esempio |
---|---|
AzureWebJobsStorage__blobServiceUri | https://<STORAGE_ACCOUNT_NAME>.blob.core.windows.net |
Usare questa impostazione anziché AzureWebJobsStorage__accountName
nei cloud sovrani o quando si usa un DNS personalizzato. Per maggiori informazioni, consultare la sezione Connessione all'archiviazione host con un'identità.
AzureWebJobsStorage__queueServiceUri
Quando si usa una connessione di archiviazione basata su identità, imposta l'URI del piano dati del servizio di accodamento dell'account di archiviazione.
Chiave | Valore di esempio |
---|---|
AzureWebJobsStorage__queueServiceUri | https://<STORAGE_ACCOUNT_NAME>.queue.core.windows.net |
Usare questa impostazione anziché AzureWebJobsStorage__accountName
nei cloud sovrani o quando si usa un DNS personalizzato. Per maggiori informazioni, consultare la sezione Connessione all'archiviazione host con un'identità.
AzureWebJobsStorage__tableServiceUri
Quando si usa una connessione di archiviazione basata su identità, imposta l'URI del piano dati del servizio tabelle dell'account di archiviazione.
Chiave | Valore di esempio |
---|---|
AzureWebJobsStorage__tableServiceUri | https://<STORAGE_ACCOUNT_NAME>.table.core.windows.net |
Usare questa impostazione anziché AzureWebJobsStorage__accountName
nei cloud sovrani o quando si usa un DNS personalizzato. Per maggiori informazioni, consultare la sezione Connessione all'archiviazione host con un'identità.
AzureWebJobs_TypeScriptPath
Percorso per il compilatore usato per TypeScript. Consente di eseguire l'override dell'impostazione predefinita, se necessario.
Chiave | Valore di esempio |
---|---|
AzureWebJobs_TypeScriptPath | %HOME%\typescript |
DOCKER_REGISTRY_SERVER_PASSWORD
Indica la password usata per accedere a un registro contenitori privato. Questa impostazione è necessaria solo quando si distribuisce l'app per le funzioni in contenitori da un registro contenitori privato. Per altre informazioni, vedere Variabili di ambiente e impostazioni dell'app in Servizio app di Azure.
DOCKER_REGISTRY_SERVER_URL
Indica l'URL di un registro contenitori privato. Questa impostazione è necessaria solo quando si distribuisce l'app per le funzioni in contenitori da un registro contenitori privato. Per altre informazioni, vedere Variabili di ambiente e impostazioni dell'app in Servizio app di Azure.
DOCKER_REGISTRY_SERVER_USERNAME
Indica l'account usato per accedere a un registro contenitori privato. Questa impostazione è necessaria solo quando si distribuisce l'app per le funzioni in contenitori da un registro contenitori privato. Per altre informazioni, vedere Variabili di ambiente e impostazioni dell'app in Servizio app di Azure.
DOCKER_SHM_SIZE
Imposta le dimensioni della memoria condivisa (in byte) quando il ruolo di lavoro Python usa la memoria condivisa. Per altre informazioni, vedere Memoria condivisa.
Chiave | Valore di esempio |
---|---|
DOCKER_SHM_SIZE | 268435456 |
Il valore precedente imposta la dimensione della memoria condivisa su circa 256 MB.
Richiede che FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED
sia impostato su 1
.
ENABLE_ORYX_BUILD
Indica se il sistema di compilazione Oryx viene usato durante la distribuzione. ENABLE_ORYX_BUILD
deve essere impostato su true
quando si eseguono distribuzioni di compilazione remota in Linux. Per ulteriori informazioni, vedere Compilazione remota.
Chiave | Valore di esempio |
---|---|
ENABLE_ORYX_BUILD | true |
FUNCTION_APP_EDIT_MODE
Indica se è possibile modificare l'app per le funzioni nel portale di Azure. I valori validi sono readwrite
e readonly
.
Chiave | Valore di esempio |
---|---|
FUNCTION_APP_EDIT_MODE | readonly |
Il valore viene impostato dal runtime in base allo stack di linguaggio e allo stato di distribuzione dell'app per le funzioni. Per altre informazioni, vedere Limitazioni di sviluppo nel portale di Azure.
FUNCTIONS_EXTENSION_VERSION
La versione del runtime di Funzioni che ospita l'app per le funzioni. Una tilde (~
) con versione principale indica l'uso della versione più recente di quella versione principale (ad esempio, ~4
). Quando sono disponibili nuove versioni secondarie della stessa versione principale, vengono installate automaticamente nell'app per le funzioni.
Chiave | Valore di esempio |
---|---|
FUNCTIONS_EXTENSION_VERSION | ~4 |
Sono supportati i valori di versione di runtime principali seguenti:
Valore | Destinazione del runtime | Commento |
---|---|---|
~4 |
4.x | Requisiti consigliati |
~1 |
1.x | Il supporto termina il 14 settembre 2026 |
Il valore ~4
indica che l'app viene eseguita nella versione 4.x del runtime. Un valore di ~1
aggiunge l'app alla versione 1.x del runtime. Le versioni di runtime 2.x e 3.x non sono più supportate. Per altre informazioni, vedere Panoramica delle versioni del runtime per Funzioni di Azure.
Se è richiesto dal supporto di aggiungere l'app a una specifica versione secondaria, usare il numero di versione completo (ad esempio, 4.0.12345
). Per altre informazioni, vedere Come specificare le versioni del runtime per Funzioni di Azure.
FUNCTIONS_INPROC_NET8_ENABLED
Indica se un'app può usare .NET 8 nel modello In-Process. Per usare .NET 8 nel modello In-Process, questo valore deve essere impostato su 1
. Per istruzioni complete, inclusi altri valori di configurazione necessari, vedere Aggiornamento a .NET 8 di destinazione.
Chiave | Valore di esempio |
---|---|
FUNCTIONS_INPROC_NET8_ENABLED | 1 |
Impostare su 0
per disabilitare il supporto per .NET 8 nel modello In-Process.
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR
Questa impostazione dell'app è una modalità temporanea usata dalle app Node.js per abilitare una modifica di rilievo che semplifica la risoluzione dei problemi dei punti di ingresso in Node.js v18 o versione precedente. È consigliabile usare true
, soprattutto per le app del modello di programmazione v4, che usano sempre i file del punto di ingresso. Il comportamento senza modifiche di rilievo (false
) ignora gli errori del punto di ingresso e non li registra in Application Insights.
A partire da Node.js v20, l'impostazione dell'app non ha alcun effetto e il comportamento di modifica di rilievo è sempre abilitato.
Per Node.js v18 o versione precedente, viene usata l'impostazione dell'app e il comportamento predefinito dipende dal fatto che l'errore si verifichi prima o dopo la registrazione di una funzione del modello v4:
- Se l'errore viene generato prima (ad esempio se si usa il modello v3 o il file del punto di ingresso non esiste), il comportamento predefinito corrisponde a
false
. - Se l'errore viene generato dopo (ad esempio se si tenta di registrare funzioni del modello duplicato v4), il comportamento predefinito corrisponde a
true
.
Chiave | valore | Descrizione |
---|---|---|
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR | true |
Bloccare gli errori del punto di ingresso e registrarli in Application Insights. |
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR | false |
Ignorare gli errori del punto di ingresso e non registrarli in Application Insights. |
FUNCTIONS_REQUEST_BODY_SIZE_LIMIT
Esegue l'override del limite predefinito per le dimensioni del corpo delle richieste inviate agli endpoint HTTP. Il valore viene specificato in byte, con una dimensione massima di richiesta predefinita pari a 104.857.600 byte.
Chiave | Valore di esempio |
---|---|
FUNCTIONS_REQUEST_BODY_SIZE_LIMIT | 250000000 |
FUNCTIONS_V2_COMPATIBILITY_MODE
Importante
Questa impostazione non è più supportata. È stata originariamente fornita per abilitare una soluzione alternativa a breve termine per le app destinate al runtime v2.x, per poter essere eseguite nel runtime v3.x mentre era ancora supportato. Ad eccezione delle app legacy eseguite nella versione 1.x, tutte le app per le funzioni devono essere eseguite nella versione 4.x del runtime di Funzioni: FUNCTIONS_EXTENSION_VERSION=~4
. Per altre informazioni, vedere Panoramica delle versioni del runtime per Funzioni di Azure.
FUNCTIONS_WORKER_PROCESS_COUNT
Specifica il numero massimo di processi di lavoro del linguaggio, con un valore predefinito di 1
. Il valore massimo consentito è 10
. Le chiamate di funzione vengono distribuite uniformemente tra i processi di lavoro del linguaggio. I processi di lavoro del linguaggio vengono generati ogni 10 secondi finché non viene raggiunto il conteggio impostato da FUNCTIONS_WORKER_PROCESS_COUNT
. L'uso di più processi di lavoro del linguaggio non è come eseguire il ridimensionamento. Prendere in considerazione l'uso di questa impostazione quando il carico di lavoro include una combinazione di chiamate associate a CPU e I/O. Questa impostazione si applica a tutti i runtime del linguaggio, ad eccezione di .NET in esecuzione nel processo (FUNCTIONS_WORKER_RUNTIME=dotnet
).
Chiave | Valore di esempio |
---|---|
FUNCTIONS_WORKER_PROCESS_COUNT | 2 |
FUNCTIONS_WORKER_RUNTIME
Il linguaggio o lo stack di linguaggio del runtime del ruolo di lavoro da caricare nell'app per le funzioni. Corrisponde al linguaggio usato nell'applicazione (ad esempio, python
). A partire dalla versione 2.x del runtime di Funzioni di Azure, una determinata app per le funzioni può supportare solo un singolo linguaggio.
Chiave | Valore di esempio |
---|---|
FUNCTIONS_WORKER_RUNTIME | node |
Valori validi:
Valore | Linguaggio/stack di linguaggio |
---|---|
dotnet |
C# (libreria di classi) C# (script) |
dotnet-isolated |
C# (processo di lavoro isolato) |
java |
Java |
node |
JavaScript TypeScript |
powershell |
PowerShell |
python |
Python |
custom |
Altro |
FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED
Questa impostazione consente al ruolo di lavoro Python di usare la memoria condivisa per migliorare la velocità effettiva. Abilitare la memoria condivisa quando l'app per le funzioni Python raggiunge i colli di bottiglia della memoria.
Chiave | Valore di esempio |
---|---|
FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED | 1 |
Con questa impostazione abilitata, è possibile usare l'impostazione DOCKER_SHM_SIZE per impostare le dimensioni della memoria condivisa. Per altre informazioni, vedere Memoria condivisa.
JAVA_OPTS
Usato per personalizzare la macchina virtuale Java (JVM) usata per eseguire le funzioni Java durante l'esecuzione in un piano Premium o in un piano Dedicato. Quando si esegue in un piano A consumo, usare invece languageWorkers__java__arguments
. Per altre informazioni, vedere Personalizzare la JVM.
languageWorkers__java__arguments
Usato per personalizzare la macchina virtuale Java (JVM) usata per eseguire le funzioni Java durante l'esecuzione in un piano A consumo. Questa impostazione aumenta i tempi di avvio a freddo per le funzioni Java in esecuzione su un piano A consumo. Per i piani Premium o Dedicato, usare invece JAVA_OPTS
. Per altre informazioni, vedere Personalizzare la JVM.
MDMaxBackgroundUpgradePeriod
Controlla il periodo di aggiornamento in background delle dipendenze gestite per le app per le funzioni di PowerShell, con un valore predefinito di 7.00:00:00
(settimanale).
Ogni processo di lavoro di PowerShell avvia il controllo degli aggiornamenti dei moduli in PowerShell Gallery all'avvio del processo e, successivamente, ogni MDMaxBackgroundUpgradePeriod
. Quando una nuova versione del modulo è disponibile in PowerShell Gallery, viene installata nel file system e resa disponibile per i ruoli di lavoro di PowerShell. La riduzione di questo valore consente all'app per le funzioni di ottenere prima le versioni più recenti del modulo, ma aumenta anche l'utilizzo delle risorse dell'app (I/O di rete, CPU, archiviazione). L'aumento di questo valore riduce l'utilizzo delle risorse dell'app, ma può anche ritardare la distribuzione di nuove versioni del modulo all'app.
Chiave | Valore di esempio |
---|---|
MDMaxBackgroundUpgradePeriod | 7.00:00:00 |
Per altre informazioni, consultare Gestione dipendenze.
MDNewSnapshotCheckPeriod
Specifica la frequenza con cui ogni ruolo di lavoro di PowerShell controlla se sono stati installati gli aggiornamenti delle dipendenze gestite. La frequenza predefinita è 01:00:00
(oraria).
Dopo l'installazione di nuove versioni del modulo nel file system, è necessario riavviare ogni processo di lavoro di PowerShell. Il riavvio dei ruoli di lavoro di PowerShell influisce sulla disponibilità dell'app perché può interrompere l'esecuzione della funzione corrente. Finché non vengono riavviati tutti i processi di lavoro di PowerShell, le chiamate di funzione possono usare sia le versioni precedenti del modulo che quelle nuove. Il riavvio di tutti i ruoli di lavoro di PowerShell viene completato all'interno di MDNewSnapshotCheckPeriod
.
All'interno di ogni MDNewSnapshotCheckPeriod
, il ruolo di lavoro di PowerShell controlla se sono stati installati o meno gli aggiornamenti delle dipendenze gestite. Quando gli aggiornamenti sono stati installati, viene eseguito un riavvio. L'aumento di questo valore riduce la frequenza delle interruzioni a causa dei riavvii. Tuttavia, l'aumento potrebbe anche aumentare il tempo durante il quale le chiamate di funzione potrebbero usare le versioni precedenti del modulo o quelle nuove, in modo non deterministico.
Chiave | Valore di esempio |
---|---|
MDNewSnapshotCheckPeriod | 01:00:00 |
Per altre informazioni, consultare Gestione dipendenze.
MDMinBackgroundUpgradePeriod
Il periodo di tempo trascorso dal controllo precedente dell'aggiornamento delle dipendenze gestite prima dell'avvio di un altro controllo di aggiornamento, con un valore predefinito di 1.00:00:00
(giornaliero).
Per evitare un numero eccessivo di aggiornamenti dei moduli in caso di frequenti riavvii del ruolo di lavoro, il controllo degli aggiornamenti del modulo non viene eseguito quando un ruolo di lavoro ha già avviato tale controllo nell'ultimo MDMinBackgroundUpgradePeriod
.
Chiave | Valore di esempio |
---|---|
MDMinBackgroundUpgradePeriod | 1.00:00:00 |
Per altre informazioni, consultare Gestione dipendenze.
PIP_INDEX_URL
Questa impostazione consente di eseguire l'override dell'URL di base dell'indice del pacchetto Python, che per impostazione predefinita è https://pypi.org/simple
. Usare questa impostazione quando è necessario eseguire una compilazione remota usando dipendenze personalizzate. Le dipendenze personalizzate possono trovarsi in un repository di indici di pacchetti conforme a PEP 503 (API repository semplice) o in una directory locale che segue lo stesso formato.
Chiave | Valore di esempio |
---|---|
PIP_INDEX_URL | http://my.custom.package.repo/simple |
Per altre informazioni, vedere la documentazione pip
per --index-url
e l'uso di dipendenze personalizzate nelle informazioni di riferimento per sviluppatori Python.
PIP_EXTRA_INDEX_URL
Il valore per questa impostazione indica un URL di indice aggiuntivo per i pacchetti personalizzati per le app Python, da usare oltre a --index-url
. Usare questa impostazione quando è necessario eseguire una compilazione remota usando dipendenze personalizzate presenti in un indice di pacchetto aggiuntivo. Deve seguire le stesse regole di --index-url
.
Chiave | Valore di esempio |
---|---|
PIP_EXTRA_INDEX_URL | http://my.custom.package.repo/simple |
Per altre informazioni, vedere la documentazione pip
per --extra-index-url
e dipendenze personalizzate nelle informazioni di riferimento per sviluppatori Python.
PROJECT
Un'impostazione di distribuzione continua che indica al servizio di distribuzione Kudu la cartella in un repository connesso per il percorso del progetto distribuibile.
Chiave | Valore di esempio |
---|---|
PROJECT | WebProject/WebProject.csproj |
PYTHON_ISOLATE_WORKER_DEPENDENCIES
La configurazione è specifica per le app per le funzioni Python. Definisce la priorità dell'ordine di caricamento dei moduli. Per impostazione predefinita, questo valore è impostato su 0
.
Chiave | valore | Descrizione |
---|---|---|
PYTHON_ISOLATE_WORKER_DEPENDENCIES | 0 |
Classificare in ordine di priorità il caricamento delle librerie Python dalle dipendenze interne del ruolo di lavoro Python, ovvero il comportamento predefinito. Le librerie di terze parti definite in requirements.txt potrebbero essere nascoste. |
PYTHON_ISOLATE_WORKER_DEPENDENCIES | 1 |
Classificare in ordine di priorità il caricamento delle librerie Python dal pacchetto dell'applicazione definito in requirements.txt. Ciò impedisce alle librerie di entrare in conflitto con le librerie del ruolo di lavoro Python interno. |
PYTHON_ENABLE_DEBUG_LOGGING
Abilita la registrazione a livello di debug in un'app per le funzioni Python. Il valore di 1
abilita la registrazione a livello di debug. Senza questa impostazione o con il valore 0
, solo le informazioni e i log di livello superiore vengono inviati dal ruolo di lavoro Python all'host Funzioni. Usare questa impostazione durante il debug o il tracciamento delle esecuzioni delle funzioni Python.
Quando si esegue il debug delle funzioni Python, assicurarsi di impostare anche un livello di registrazione di debug o tracciamento nel file host.json, in base alle esigenze. Per altre informazioni, vedere Come configurare il monitoraggio per Funzioni di Azure.
PYTHON_ENABLE_WORKER_EXTENSIONS
La configurazione è specifica per le app per le funzioni Python. L'impostazione di questa opzione in 1
consente di caricare il ruolo di lavoro nelle estensioni del ruolo di lavoro Python definite in requirements.txt. Consente all'app per le funzioni di accedere alle nuove funzionalità fornite dai pacchetti di terze parti. Può anche modificare il comportamento del caricamento e della chiamata delle funzioni nell'app. Assicurarsi che l'estensione scelta sia attendibile, in quanto il rischio dell'uso è in capo all'utente. Funzioni di Azure non offre alcuna garanzia esplicita sulle estensioni. Per informazioni su come usare un'estensione, visitare la pagina del manuale sull'estensione o la documentazione. Per impostazione predefinita, questo valore è impostato su 0
.
Chiave | valore | Descrizione |
---|---|---|
PYTHON_ENABLE_WORKER_EXTENSIONS | 0 |
Disabilitare le estensioni del ruolo di lavoro Python. |
PYTHON_ENABLE_WORKER_EXTENSIONS | 1 |
Consentire al ruolo di lavoro Python di caricare le estensioni da requirements.txt. |
PYTHON_THREADPOOL_THREAD_COUNT
Specifica il numero massimo di thread che un ruolo di lavoro del linguaggio Python userebbe per eseguire chiamate di funzione, con un valore predefinito di 1
per la versione di Python 3.8
e precedente. Per la versione di Python 3.9
e successiva, il valore è impostato su None
. Questa impostazione non garantisce il numero di thread che verranno impostati durante le esecuzioni. L'impostazione consente a Python di espandere il numero di thread al valore specificato. L'impostazione si applica solo alle app per le funzioni Python. Inoltre, l'impostazione si applica alla chiamata delle funzioni sincrone e non alle coroutine.
Chiave | Valore di esempio | Valore massimo |
---|---|---|
PYTHON_THREADPOOL_THREAD_COUNT | 2 | 32 |
SCALE_CONTROLLER_LOGGING_ENABLED
Questa impostazione è attualmente disponibile in versione di anteprima.
Questa impostazione controlla la registrazione dal controller di scalabilità di Funzioni di Azure. Per altre informazioni, vedere Ridimensionare i log del controller.
Chiave | Valore di esempio |
---|---|
SCALE_CONTROLLER_LOGGING_ENABLED | AppInsights:Verbose |
Il valore per questa chiave viene fornito nel formato <DESTINATION>:<VERBOSITY>
, definito come segue:
Proprietà | Descrizione |
---|---|
<DESTINATION> |
Destinazione a cui sono inviati i log. I valori validi sono AppInsights e Blob .Quando si usa AppInsights , assicurarsi che Application Insights sia abilitato nell'app per le funzioni.Quando si imposta la destinazione su Blob , i log vengono creati in un contenitore BLOB denominato azure-functions-scale-controller nell'account di archiviazione predefinito impostato nell'impostazione dell'applicazione AzureWebJobsStorage . |
<VERBOSITY> |
Specifica il livello di registrazione. I valori supportati sono None , Warning e Verbose .Se impostato su Verbose , il controller di scalabilità registra un motivo per ogni modifica nel conteggio dei ruoli di lavoro e le informazioni sui trigger che determinano tali decisioni. I log dettagliati includono avvisi di trigger e codici hash usati dai trigger prima e dopo l'esecuzione del controller di scalabilità. |
Suggerimento
Tenere presente che, mentre si lascia abilitata la registrazione del controller di scalabilità, questa influisce sui potenziali costi del monitoraggio dell'app per le funzioni. Valutare la possibilità di abilitare la registrazione fino a quando non saranno stati raccolti dati sufficienti per comprendere il comportamento del controller di scalabilità, quindi disabilitarla.
SCM_DO_BUILD_DURING_DEPLOYMENT
Controlla il comportamento di compilazione remota durante la distribuzione. Quando SCM_DO_BUILD_DURING_DEPLOYMENT
è impostato su true
, il progetto viene compilato in modalità remota durante la distribuzione.
Chiave | Valore di esempio |
---|---|
SCM_DO_BUILD_DURING_DEPLOYMENT | true |
SCM_LOGSTREAM_TIMEOUT
Controlla il timeout, espresso in secondi, quando si è connessi agli streaming dei log. Il valore predefinito è 7200 (2 ore).
Chiave | Valore di esempio |
---|---|
SCM_LOGSTREAM_TIMEOUT | 1800 |
Il valore di esempio precedente di 1800
imposta un timeout di 30 minuti. Per altre informazioni, vedere Abilitare i log di esecuzione di streaming in Funzioni di Azure.
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
Stringa di connessione per l'account di archiviazione in cui sono archiviati il codice e la configurazione dell'app per le funzioni in piani di ridimensionamento guidati dagli eventi. Per altre informazioni, vedere Impostazione di connessione dell'account di archiviazione.
Chiave | Valore di esempio |
---|---|
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING | DefaultEndpointsProtocol=https;AccountName=... |
Questa impostazione è necessaria per le app dei piani A consumo ed Elastico Premium in esecuzione sia in Windows che in Linux. Non è necessaria per le app del piano Dedicato, che non vengono ridimensionate dinamicamente da Funzioni.
La modifica o la rimozione di questa impostazione può impedire l'avvio dell'app per le funzioni. Per altre informazioni, vedere questo articolo sulla risoluzione dei problemi.
File di Azure non supporta l'uso dell'identità gestita quando si accede alla condivisione file. Per altre informazioni, vedere Scenari di autenticazione supportati da File di Azure.
WEBSITE_CONTENTOVERVNET
Importante
WEBSITE_CONTENTOVERVNET è un'impostazione di app legacy sostituita dalla proprietà del sito vnetContentShareEnabled.
Il valore 1
consente il ridimensionamento dell'app per le funzioni quando l'account di archiviazione è limitato a una rete virtuale. È consigliabile abilitare questa impostazione quando si limita l'account di archiviazione a una rete virtuale. Obbligatoria solo quando si usa WEBSITE_CONTENTSHARE
e WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
. Per altre informazioni, vedere Limitare l'account di archiviazione a una rete virtuale.
Chiave | Valore di esempio |
---|---|
WEBSITE_CONTENTOVERVNET | 1 |
Questa impostazione dell'app è necessaria nei piani Elastic Premium e Dedicato (Servizio app) (Standard e versioni superiori). Non supportato quando si esegue in un piano A consumo.
Nota
È necessario prestare particolare attenzione quando si esegue il routing alla condivisione dei contenuti in un account di archiviazione condiviso da più app per le funzioni nello stesso piano. Per altre informazioni, vedere Routing coerente tramite reti virtuali nell'articolo Considerazioni sull'archiviazione.
WEBSITE_CONTENTSHARE
Il nome della condivisione file usata da Funzioni per archiviare il codice e i file di configurazione dell'app per le funzioni. Questo contenuto è obbligatorio per i piani di ridimensionamento guidati dagli eventi. Utilizzato insieme a WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
, Il valore predefinito è una stringa univoca generata dal runtime che inizia con il nome dell'app per le funzioni. Per altre informazioni, vedere Impostazione di connessione dell'account di archiviazione.
Chiave | Valore di esempio |
---|---|
WEBSITE_CONTENTSHARE | functionapp091999e2 |
Questa impostazione è necessaria per le app dei piani A consumo e Premium sia in Windows che in Linux. Non è necessaria per le app del piano Dedicato, che non vengono ridimensionate dinamicamente da Funzioni.
La condivisione viene creata al momento della creazione dell'app per le funzioni. La modifica o la rimozione di questa impostazione può impedire l'avvio dell'app per le funzioni. Per altre informazioni, vedere questo articolo sulla risoluzione dei problemi.
Le considerazioni seguenti si applicano quando si usa un modello di Azure Resource Manager (ARM) o un file Bicep per creare un'app per le funzioni durante la distribuzione:
- Quando non si imposta un valore
WEBSITE_CONTENTSHARE
per l'app per le funzioni principale o per le app negli slot, vengono generati automaticamente valori di condivisione univoci. Non impostareWEBSITE_CONTENTSHARE
è l'approccio consigliato per una distribuzione di modelli di Resource Manager. - Esistono scenari in cui è necessario impostare il valore
WEBSITE_CONTENTSHARE
in un valore predefinito, ad esempio quando si usa un account di archiviazione protetto in una rete virtuale. In questo caso, è necessario impostare un nome di condivisione univoco per l'app per le funzioni principale e l'app per ogni slot di distribuzione. Nel caso di un account di archiviazione protetto da una rete virtuale, è anche necessario creare la condivisione stessa come parte della distribuzione automatizzata. Per altre informazioni, vedere Distribuzioni protette. - Non impostare uno slot con
WEBSITE_CONTENTSHARE
. - Quando si specifica
WEBSITE_CONTENTSHARE
, il valore deve seguire queste indicazioni per i nomi di condivisione.
WEBSITE_DNS_SERVER
Imposta il server DNS usato da un'app durante la risoluzione degli indirizzi IP. Questa impostazione è spesso necessaria quando si usano determinate funzionalità di rete, ad esempio zone private ed endpoint privati di DNS di Azure.
Chiave | Valore di esempio |
---|---|
WEBSITE_DNS_SERVER | 168.63.129.16 |
WEBSITE_ENABLE_BROTLI_ENCODING
Controlla se la codifica Brotli viene usata per la compressione al posto della compressione gzip predefinita. Se WEBSITE_ENABLE_BROTLI_ENCODING
è impostato su 1
, viene usata la codifica Brotli; in caso contrario, viene usata la codifica gzip.
WEBSITE_FUNCTIONS_ARMCACHE_ENABLED
Disabilita la memorizzazione nella cache durante la distribuzione di app per le funzioni usando modelli di Azure Resource Manager (ARM).
Chiave | Valore di esempio |
---|---|
WEBSITE_FUNCTIONS_ARMCACHE_ENABLED | 0 |
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT
Il numero massimo di istanze che è possibile aumentare per l'app. Il valore predefinito è no limit.
Importante
Questa impostazione è disponibile in anteprima. È stata aggiunta una proprietà dell'app per il numero massimo di istanze della funzione ed è il modo consigliato per limitare la scalabilità.
Chiave | Valore di esempio |
---|---|
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT | 5 |
WEBSITE_NODE_DEFAULT_VERSION
Solo Windows.
Imposta la versione di Node.js da usare durante l'esecuzione dell'app per le funzioni in Windows. È consigliabile usare una tilde (~) per fare in modo che il runtime usi la versione più recente disponibile della versione principale di destinazione. Ad esempio, quando è impostato su ~18
, viene usata la versione più recente di Node.js 18. Quando una versione principale è destinata a una tilde, non è necessario aggiornare manualmente la versione secondaria.
Chiave | Valore di esempio |
---|---|
WEBSITE_NODE_DEFAULT_VERSION | ~18 |
WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS
Quando si esegue uno scambio di slot in un'app per le funzioni in esecuzione in un piano Premium, è possibile che lo scambio non vada a buon fine quando l'account di archiviazione dedicato usato dall'app è limitato dalla rete. Questo errore è causato da una funzionalità di registrazione delle applicazioni legacy, condivisa sia da Funzioni che dal Servizio app. Questa impostazione esegue l'override della funzionalità di registrazione legacy e consente di eseguire lo scambio.
Chiave | Valore di esempio |
---|---|
WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS | 0 |
Aggiungere WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS
con un valore di 0
a tutti gli slot per assicurarsi che le impostazioni di diagnostica legacy non blocchino gli scambi. Inoltre, è possibile aggiungere questa impostazione e questo valore solo allo slot di produzione come impostazione dello slot di distribuzione (permanente).
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS
Per impostazione predefinita, le impostazioni della versione per le app per le funzioni sono specifiche di ogni slot. Questa impostazione viene usata durante l'aggiornamento delle funzioni usando gli slot di distribuzione. Ciò impedisce comportamenti imprevisti a causa della modifica delle versioni dopo lo scambio. Impostare su 0
in produzione e nello slot per assicurarsi che vengano scambiate anche tutte le impostazioni della versione. Per altre informazioni, vedere Aggiornamento tramite slot.
Chiave | Valore di esempio |
---|---|
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS | 0 |
WEBSITE_RUN_FROM_PACKAGE
Consente all'app per le funzioni di essere in esecuzione da un file di pacchetto, che può essere montato o distribuito localmente in un URL esterno.
Chiave | Valore di esempio |
---|---|
WEBSITE_RUN_FROM_PACKAGE | 1 |
I valori validi sono un URL che si risolve nel percorso di un file di pacchetto di distribuzione esterno o 1
. Se impostato su 1
, il pacchetto deve trovarsi nella cartella d:\home\data\SitePackages
. Quando si usa la distribuzione di file zip con l'impostazione WEBSITE_RUN_FROM_PACKAGE
abilitata, il pacchetto viene caricato automaticamente in questo percorso. In anteprima questa impostazione era denominata WEBSITE_RUN_FROM_ZIP
. Per altre informazioni, vedere Run your Functions from a package file (Esecuzione di Funzioni di Azure da un file di pacchetto).
Quando si esegue la distribuzione da un URL di pacchetto esterno, è anche necessario sincronizzare manualmente i trigger. Per altre informazioni, vedere Sincronizzazione dei trigger.
WEBSITE_SKIP_CONTENTSHARE_VALIDATION
Le impostazioni WEBSITE_CONTENTAZUREFILECONNECTIONSTRING e WEBSITE_CONTENTSHARE hanno controlli di convalida aggiuntivi per assicurarsi che l'app possa essere avviata correttamente. La creazione delle impostazioni dell'applicazione non va a buon fine quando l'app per le funzioni non riesce a chiamare correttamente l'account di archiviazione a valle o l'insieme di credenziali delle chiavi a causa di vincoli di rete o di altri fattori di limitazione. Quando WEBSITE_SKIP_CONTENTSHARE_VALIDATION è impostato su 1
, il controllo di convalida viene ignorato; in caso contrario, il valore predefinito è 0
e viene eseguita la convalida.
Chiave | Valore di esempio |
---|---|
WEBSITE_SKIP_CONTENTSHARE_VALIDATION | 1 |
Se la convalida viene ignorata e la stringa di connessione o la condivisione di contenuto non sono valide, l'app non sarà in grado di avviarsi correttamente. In questo caso, le funzioni restituiscono errori HTTP 500. Per altre informazioni, vedere Risolvere l'errore: "Il runtime di Funzioni di Azure non è raggiungibile"
WEBSITE_SLOT_NAME
Sola lettura. Nome dello slot di distribuzione corrente. Il nome dello slot di produzione è Production
.
Chiave | Valore di esempio |
---|---|
WEBSITE_SLOT_NAME | Production |
WEBSITE_TIME_ZONE
Consente di impostare il fuso orario per l'app per le funzioni.
Chiave | Sistema operativo | Valore di esempio |
---|---|---|
WEBSITE_TIME_ZONE | Windows | Eastern Standard Time |
WEBSITE_TIME_ZONE | Linux | America/New_York |
Il fuso orario predefinito usato con le espressioni CRON è Coordinated Universal Time (UTC). Per fare in modo che l'espressione CRON sia basata su un altro fuso orario, creare un'impostazione per l'app per le funzioni denominata WEBSITE_TIME_ZONE
.
Il valore di questa impostazione dipende dal sistema operativo e dal piano in cui viene eseguita l'app per le funzioni.
Sistema operativo | Piano | Valore |
---|---|---|
Windows | Tutte le date | Impostare il valore sul nome del fuso orario desiderato in base alla seconda riga di ogni coppia specificata dal comando di Windows tzutil.exe /L |
Linux | Premium Dedicato |
Impostare il valore sul nome del fuso orario desiderato come illustrato nel database tz. |
Nota
Attualmente WEBSITE_TIME_ZONE
e TZ
non sono supportati durante l'esecuzione in Linux in un piano A consumo. In questo caso, l'impostazione di WEBSITE_TIME_ZONE
o TZ
può creare problemi correlati a SSL e causare l'interruzione del funzionamento delle metriche per l'app.
Ad esempio, il fuso orientale negli Stati Uniti (rappresentato da Eastern Standard Time
(Windows) o America/New_York
(Linux)) usa attualmente UTC-05:00 durante l'ora solare e UTC-04:00 durante l'ora legale. Per attivare un trigger orario alle 10:00 del fuso orientale ogni giorno, creare un'impostazione dell'app per l'app per le funzioni denominata WEBSITE_TIME_ZONE
, impostare il valore su Eastern Standard Time
(Windows) o America/New_York
(Linux), quindi usare l'espressione NCRONTAB seguente:
"0 0 10 * * *"
Quando si usa WEBSITE_TIME_ZONE
, l'ora viene regolata per modifiche all'ora nel fuso orario specifico, comprese l'ora legale e le modifiche all'ora solare.
WEBSITE_USE_PLACEHOLDER
Indica se usare un'ottimizzazione specifica per l'avvio a freddo durante l'esecuzione nel piano A consumo. Impostare su 0
per disabilitare l'ottimizzazione per l'avvio a freddo nel piano A consumo.
Chiave | Valore di esempio |
---|---|
WEBSITE_USE_PLACEHOLDER | 1 |
WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED
Indica se usare un'ottimizzazione specifica per l'avvio a freddo durante l'esecuzione di funzioni del processo di lavoro isolato .NET nel piano A consumo. Impostare su 0
per disabilitare l'ottimizzazione per l'avvio a freddo nel piano A consumo.
Chiave | Valore di esempio |
---|---|
WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED | 1 |
WEBSITE_VNET_ROUTE_ALL
Importante
WEBSITE_VNET_ROUTE_ALL è un'impostazione di app legacy che è stata sostituita dall'impostazione del sito vnetRouteAllEnabled.
Indica se tutto il traffico in uscita dall'app viene indirizzato attraverso la rete virtuale. Un valore di impostazione 1
indica che tutto il traffico dell’applicazione viene indirizzato attraverso la rete virtuale. Questa impostazione sarà necessaria quando si configura l'integrazione della rete virtuale a livello di area nei piani di hosting Elastic Premium e Dedicato. Si usa anche quando viene usato un gateway NAT di rete virtuale per definire un indirizzo IP statico in uscita.
Chiave | Valore di esempio |
---|---|
WEBSITE_VNET_ROUTE_ALL | 1 |
WEBSITES_ENABLE_APP_SERVICE_STORAGE
Indica se la directory /home
è condivisa con le istanze ridimensionate, con un valore predefinito di true
. È consigliabile impostare il valore su false
quando si distribuisce l'app per le funzioni in un contenitore.
Impostazioni del sito del Servizio app
Alcune configurazioni devono essere gestite a livello di Servizio app come impostazioni del sito, ad esempio le versioni della lingua. Queste impostazioni vengono gestite nel portale usando le API REST, l'interfaccia della riga di comando di Azure o Azure PowerShell. Di seguito sono riportate le impostazioni del sito che potrebbero essere necessarie, a seconda del linguaggio di runtime, del sistema operativo e delle versioni:
AcrUseManagedIdentityCreds
Indica se l'immagine viene ottenuta da un'istanza di Registro Azure Container usando l'autenticazione dell'identità gestita. Un valore di true
richiede che venga usata l'identità gestita, consigliata rispetto alle credenziali di autenticazione archiviate come procedura consigliata per la sicurezza.
AcrUserManagedIdentityID
Indica l'identità gestita da usare per ottenere l'immagine da un'istanza di Registro Azure Container. Richiede che AcrUseManagedIdentityCreds
sia impostato su true
. Questi sono i valori validi:
valore | Descrizione |
---|---|
system |
Viene usata l'identità gestita assegnata dal sistema dell'app per le funzioni. |
<USER_IDENTITY_RESOURCE_ID> |
ID risorsa completo di un'identità gestita assegnata dall'utente. |
L'identità specificata deve essere aggiunta al ACRPull
ruolo nel registro contenitori. Per altre informazioni, vedere Creare e configurare un'app per le funzioni in Azure con l'immagine.
Always On
In un'app per le funzioni in esecuzione in un piano Dedicato (Servizio app), il runtime delle funzioni diventa inattivo dopo alcuni minuti di inattività, puntando solo alle richieste a un trigger HTTP che riattivano le app per le funzioni. Per assicurarsi che le funzioni attivate non HTTP vengano eseguite correttamente, incluso le funzioni trigger orario, abilitare Always On per l'app per le funzioni impostando l'impostazione del sito alwaysOn
su un valore di true
.
functionsRuntimeAdminIsolationEnabled
Determina se è possibile accedere agli endpoint dell'amministratore predefinito (/admin
) nell'app per le funzioni. Se impostato su false
(impostazione predefinita), l'app consente le richieste agli endpoint in /admin
quando tali richieste presentano una chiave master nella richiesta. In caso di true
, non è possibile accedere agli endpoint /admin
, anche con una chiave master.
Questa proprietà non può essere impostata per le app in esecuzione nell'SKU a consumo Linux e non può essere impostata per le app in esecuzione nella versione 1.x di Funzioni di Azure. Se si usa la versione 1.x, è prima necessario eseguire la migrazione alla versione 4.x.
linuxFxVersion
Per le app per le funzioni in esecuzione in Linux, linuxFxVersion
indica la lingua e la versione per il processo di lavoro specifico del linguaggio. Queste informazioni vengono usate, oltre a FUNCTIONS_EXTENSION_VERSION
, per determinare quale immagine del contenitore Linux specifica è installata per eseguire l'app per le funzioni. Questa impostazione può assumere un valore predefinito o un URI dell'immagine personalizzata.
Questo valore viene impostato automaticamente quando si crea l'app per le funzioni Linux. Potrebbe essere necessario impostarlo per i modelli di Resource Manager e le distribuzioni Bicep, nonché in determinati scenari di aggiornamento.
Valori linuxFxVersion validi
È possibile usare il comando seguente dell'interfaccia della riga di comando di Azure per visualizzare una tabella dei valori linuxFxVersion
correnti, in base alla versione del runtime di Funzioni supportata:
az functionapp list-runtimes --os linux --query "[].{stack:join(' ', [runtime, version]), LinuxFxVersion:linux_fx_version, SupportedFunctionsVersions:to_string(supported_functions_versions[])}" --output table
Il comando precedente richiede l'aggiornamento alla versione 2.40 dell'interfaccia della riga di comando di Azure.
Immagini personalizzate
Quando si crea e gestisce un contenitore Linux personalizzato per l'app per le funzioni, il valore linuxFxVersion
è invece nel formato DOCKER|<IMAGE_URI>
, come nell'esempio seguente:
linuxFxVersion = "DOCKER|contoso.com/azurefunctionsimage:v1.0.0"
Indica l'origine del registro di sistema del contenitore distribuito. Per altre informazioni, vedere Uso di contenitori e Funzioni di Azure.
Importante
Quando si creano contenitori personalizzati, è necessario mantenere aggiornata l'immagine di base del contenitore all'immagine di base supportata più recente. Le immagini di base supportate per Funzioni di Azure sono specifiche del linguaggio e sono disponibili nei repository dell'immagine di base di Funzioni di Azure.
Il team di Funzioni si impegna a pubblicare aggiornamenti mensili per queste immagini di base. Gli aggiornamenti regolari includono gli aggiornamenti della versione secondaria più recenti e le correzioni di sicurezza sia per il runtime di Funzioni che per i linguaggi. È consigliabile aggiornare regolarmente il contenitore dall'immagine di base più recente e ridistribuire la versione aggiornata del contenitore.
netFrameworkVersion
Imposta la versione specifica di .NET per le funzioni C#. Per altre informazioni, vedere Aggiornare l'app per le funzioni in Azure.
powerShellVersion
Imposta la versione specifica di PowerShell in cui vengono eseguite le funzioni. Per altre informazioni, vedere Modifica della versione di PowerShell.
Quando l'esecuzione avviene localmente, si usa invece l'impostazione FUNCTIONS_WORKER_RUNTIME_VERSION
nel file local.settings.json.
vnetContentShareEnabled
Le app in esecuzione in un piano Premium usano una condivisione file per archiviare il contenuto. Il nome di questa condivisione di contenuti viene archiviato nell'impostazione dell'app WEBSITE_CONTENTSHARE
e la relativa stringa di connessione viene archiviata in WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
. Per instradare il traffico tra l'app per le funzioni e la condivisione dei contenuti tramite una rete virtuale, è necessario impostare anche vnetContentShareEnabled
su true
. L'abilitazione di questa proprietà del sito è un requisito quando si limita l'account di archiviazione a una rete virtuale nei piani di hosting Elastic Premium e Dedicato.
Nota
È necessario prestare particolare attenzione quando si esegue il routing alla condivisione dei contenuti in un account di archiviazione condiviso da più app per le funzioni nello stesso piano. Per altre informazioni, vedere Routing coerente tramite reti virtuali nell'articolo Considerazioni sull'archiviazione.
Questa proprietà del sito sostituisce l'impostazione legacy WEBSITE_CONTENTOVERVNET
.
vnetImagePullEnabled
Funzioni supporta le app per le funzioni in esecuzione nei contenitori Linux. Per connettersi ed eseguire il pull da un registro contenitori all'interno di una rete virtuale, è necessario impostare vnetImagePullEnabled
su true
. Questa proprietà del sito è supportata nei piani di hosting Elastic Premium e Dedicato. Il piano a consumo Flex non si basa sulle proprietà del sito o sulle impostazioni dell'app per configurare la rete. Per altre informazioni, vedere Deprecazione nel piano a consumo Flex.
vnetRouteAllEnabled
Indica se tutto il traffico in uscita dall'app viene indirizzato attraverso la rete virtuale. Un valore di impostazione true
indica che tutto il traffico dell’applicazione viene indirizzato attraverso la rete virtuale. Usare questa impostazione quando si configura l'integrazione della rete virtuale a livello di area nei piani Elastic Premium e Dedicato. Si usa anche quando viene usato un gateway NAT di rete virtuale per definire un indirizzo IP statico in uscita. Per altre informazioni, vedere Configurare il routing delle applicazioni.
Questa impostazione del sito sostituisce l'impostazione WEBSITE_VNET_ROUTE_ALL legacy.
Deprecazioni del piano a consumo flex
Nel piano a consumo flex le proprietà del sito e le impostazioni dell'applicazione sono deprecate e non devono essere usate durante la creazione di risorse dell'app per le funzioni:
Impostazione/proprietà | Motivo |
---|---|
ENABLE_ORYX_BUILD |
Sostituito dal parametro remoteBuild durante la distribuzione nel piano a consumo Flex |
FUNCTIONS_EXTENSION_VERSION |
L'impostazione dell'app viene impostata dal back-end. È possibile ignorare il valore ~1. |
FUNCTIONS_WORKER_RUNTIME |
Sostituito da name in properties.functionAppConfig.runtime |
FUNCTIONS_WORKER_RUNTIME_VERSION |
Sostituito da version in properties.functionAppConfig.runtime |
FUNCTIONS_MAX_HTTP_CONCURRENCY |
Sostituita dalla sezione relativa ai trigger di scalabilità e concorrenza |
FUNCTIONS_WORKER_PROCESS_COUNT |
Impostazione non valida |
FUNCTIONS_WORKER_DYNAMIC_CONCURRENCY_ENABLED |
Impostazione non valida |
SCM_DO_BUILD_DURING_DEPLOYMENT |
Sostituito dal parametro remoteBuild durante la distribuzione nel piano a consumo Flex |
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING |
Sostituita dalla sezione relativa alla distribuzione di functionAppConfig |
WEBSITE_CONTENTOVERVNET |
Non usato per la rete nel piano a consumo Flex |
WEBSITE_CONTENTSHARE |
Sostituita dalla sezione relativa alla distribuzione di functionAppConfig |
WEBSITE_DNS_SERVER |
IL DNS viene ereditato dalla rete virtuale integrata in Flex |
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT |
Sostituito da maximumInstanceCount in properties.functionAppConfig.scaleAndConcurrency |
WEBSITE_NODE_DEFAULT_VERSION |
Sostituito da version in properties.functionAppConfig.runtime |
WEBSITE_RUN_FROM_PACKAGE |
Non usato per le distribuzioni nel piano a consumo Flex |
WEBSITE_SKIP_CONTENTSHARE_VALIDATION |
La condivisione di contenuti non viene usata nel piano a consumo Flex |
WEBSITE_VNET_ROUTE_ALL |
Non usato per la rete nel piano a consumo Flex |
properties.alwaysOn |
Non valido |
properties.containerSize |
Rinominato in instanceMemoryMB |
properties.ftpsState |
FTPS non supportato |
properties.isReserved |
Non valido |
properties.IsXenon |
Non valido |
properties.javaVersion |
Sostituito da version in properties.functionAppConfig.runtime |
properties.LinuxFxVersion |
Sostituito da properties.functionAppConfig.runtime |
properties.netFrameworkVersion |
Sostituito da version in properties.functionAppConfig.runtime |
properties.powerShellVersion |
Sostituito da version in properties.functionAppConfig.runtime |
properties.siteConfig.functionAppScaleLimit |
Rinominato in maximumInstanceCount |
properties.siteConfig.preWarmedInstanceCount |
Rinominato in alwaysReadyInstances |
properties.use32BitWorkerProcess |
32 bit non supportato |
properties.vnetBackupRestoreEnabled |
Non usato per la rete nel piano a consumo Flex |
properties.vnetContentShareEnabled |
Non usato per la rete nel piano a consumo Flex |
properties.vnetImagePullEnabled |
Non usato per la rete nel piano a consumo Flex |
properties.vnetRouteAllEnabled |
Non usato per la rete nel piano a consumo Flex |
properties.windowsFxVersion |
Non valido |
Passaggi successivi
Altre informazioni su come aggiornare le impostazioni dell'app
Vedere le impostazioni di configurazione nel file di host.json