Come disabilitare le funzioni in Funzioni di Azure
Questo articolo illustra come disabilitare una funzione in Funzioni di Azure. Disabilitare una funzione significa fare in modo che il runtime ignori l'evento che deve attivare la funzione. Questa possibilità consente di impedire l'esecuzione di una funzione specifica, senza dover modificare e ripubblicare l'intera app per le funzioni.
È possibile disabilitare una funzione sul posto creando un'impostazione dell'app nel formato AzureWebJobs.<FUNCTION_NAME>.Disabled
impostato su true
. È possibile creare e modificare questa impostazione dell'applicazione in diversi modi, ad esempio usando l'interfaccia della riga di comando di Azure, Azure PowerShell e dalla scheda Panoramica della funzione nel portale di Azure.
Le modifiche apportate alle impostazioni dell'applicazione causano il riavvio dell'app per le funzioni. Per maggiori informazioni, vedere Informazioni di riferimento sulle impostazioni dell'app per Funzioni di Azure.
Disabilitare una funzione
Usare una di queste modalità per creare un'impostazione dell'app che disabiliti una funzione di esempio denominata QueueTrigger
:
Usare i pulsanti Abilita e Disabilita nella pagina Panoramica della funzione. Questi pulsanti funzionano modificando il valore dell'impostazione dell'app AzureWebJobs.QueueTrigger.Disabled
. L'impostazione dell'app specifica della funzione viene creata la prima volta che una funzione è disabilitata.
Anche quando si pubblica nell'app per le funzioni da un progetto locale, è comunque possibile usare il portale per disabilitare le funzioni nell'app per le funzioni.
Nota
Le funzioni disabilitate possono comunque essere eseguite chiamando l'endpoint REST usando una chiave master. Per maggiori informazioni, vedere Eseguire una funzione disabilitata. Ciò significa che una funzione disabilitata viene ancora eseguita all'avvio dalla finestra Test/Esecuzione nel portale usando il master (chiave Host).
Disabilitare le funzioni in uno slot
Per impostazione predefinita, le impostazioni delle app si applicano anche alle app in esecuzione negli slot di distribuzione. È tuttavia possibile eseguire l'override dell'impostazione dell'app usata dallo slot impostando un'impostazione dell'app specifica dello slot. Ad esempio, potrebbe essere necessario che una funzione sia attiva nell'ambiente di produzione, ma non durante i test di distribuzione. È comune disabilitare le funzioni attivate dal timer negli slot per impedire esecuzioni simultanee.
Per disabilitare una funzione solo nello slot di staging:
Andare all'istanza dello slot dell'app per le funzioni selezionando Slot di distribuzione in Distribuzione, scegliendo lo slot e selezionando Funzioni nell'istanza dello slot. Scegliere la funzione, quindi usare i pulsanti Abilita e Disabilita nella pagina Panoramica della funzione. Questi pulsanti funzionano modificando il valore dell'impostazione dell'app AzureWebJobs.<FUNCTION_NAME>.Disabled
. Questa impostazione specifica della funzione viene creata la prima volta che si disabilita la funzione.
È anche possibile aggiungere direttamente l'impostazione dell'app denominata AzureWebJobs.<FUNCTION_NAME>.Disabled
con il valore di true
nella Configurazione per l'istanza dello slot. Quando si aggiunge un'impostazione dell'app specifica dello slot, assicurarsi di selezionare la casella Impostazione Slot di distribuzione. Questa opzione mantiene il valore dell'impostazione con lo slot durante gli scambi.
Per maggiori informazioni, vedere Slot di Distribuzione di Funzioni di Azure.
Eseguire una funzione disabilitata
È comunque possibile eseguire una funzione disabilitata specificando la chiave di accesso master (_master
) in una richiesta REST all'URL dell'endpoint della funzione disabilitata. In questo modo, è possibile sviluppare e convalidare funzioni in Azure in uno stato disabilitato, impedendo che altri utenti possano accedervi. L'uso di qualsiasi altro tipo di chiave nella richiesta restituisce una risposta HTTP 404.
Attenzione
Per le autorizzazioni elevate concesse dalla chiave master nell'app per le funzioni, è consigliabile non condividere questa chiave con terzi o distribuirla in applicazioni client native. Prestare attenzione quando si sceglie il livello di accesso HTTP amministratore per gli endpoint di funzione.
Per maggiori informazioni sulla chiave master, vedere Informazioni sulle chiavi. Per altre informazioni sulla chiamata di funzioni attivate non HTTP, vedere Eseguire manualmente una funzione non attivata da HTTP.
Disabilitare le funzioni in locale
Le funzioni possono essere disabilitate nello stesso modo durante l'esecuzione in locale. Per disabilitare una funzione denominata QueueTrigger
, aggiungere una voce all'insieme Values nel file local.settings.json, come indicato di seguito:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "python",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobs.QueueTrigger.Disabled": true
}
}
Considerazioni
Quando si disabilitano le funzioni, tenere presenti le considerazioni seguenti:
Quando si disabilita una funzione attivata tramite HTTP usando i metodi descritti in questo articolo, si può ancora accedere all'endpoint quando viene eseguito nel computer locale e nel portale.
Al momento, i nomi di funzione che contengono un trattino (
-
) non possono essere disabilitati durante l'esecuzione in Linux. Se si prevede di disabilitare le funzioni durante l'esecuzione in Linux, non usare trattini nei nomi delle funzioni.
Passaggi successivi
Questo articolo contiene informazioni sulla disabilitazione dei trigger automatici. Per altre informazioni, vedere Trigger e associazioni.