Come disabilitare le funzioni in Funzioni di Azure

Questo articolo illustra come disabilitare una funzione in Funzioni di Azure. Per disabilitare una funzione significa fare in modo che il runtime ignori l'evento destinato a 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, tra cui usando l'interfaccia della riga di comando di Azure, Azure PowerShell e dalla scheda Panoramica della funzione nella portale di Azure.

Le modifiche apportate alle impostazioni dell'applicazione causano il riavvio dell'app per le funzioni. Per altre 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 disabilita 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.

Function state switch

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 altre 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).This means that a disabled function still runs when started from the Test/Run window in the portal using the master (Host key).

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:

Passare 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 in trueConfiguration 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 altre informazioni, vedere Funzioni di Azure Slot di distribuzione.

Eseguire una funzione disabilitata

È comunque possibile eseguire una funzione disabilitata specificando la chiave 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 loro di accedervi da altri utenti. L'uso di qualsiasi altro tipo di chiave nella richiesta restituisce una risposta HTTP 404.

Attenzione

A causa delle autorizzazioni elevate nell'app per le funzioni concesse dalla chiave master, non è consigliabile condividere questa chiave con terze parti o distribuirla nelle applicazioni client native. Fare attenzione quando si sceglie il livello di accesso di amministratore.

Per altre informazioni sulla chiave master, vedere Recupero delle 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 da HTTP usando i metodi descritti in questo articolo, è comunque possibile accedere all'endpoint durante l'esecuzione 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.