Funzioni di Azure slot di distribuzione

Funzioni di Azure slot di distribuzione consentono all'app per le funzioni di eseguire istanze diverse denominate slot. Gli slot sono ambienti diversi esposti tramite un endpoint disponibile pubblicamente. Un'istanza dell'app viene sempre mappata allo slot di produzione ed è possibile scambiare le istanze assegnate a uno slot su richiesta. Le app per le funzioni in esecuzione in un piano a consumo hanno un singolo slot aggiuntivo per la gestione temporanea. È possibile ottenere più slot di staging eseguendo l'app in un piano Premium o dedicato (servizio app). Per altre informazioni, vedere Limiti del servizio.

Di seguito viene illustrato il modo in cui le funzioni sono interessate dallo scambio degli slot:

  • Il reindirizzamento del traffico è facile; nessuna richiesta viene eliminata a causa di uno scambio. Questo comportamento facile si verifica perché il trigger di funzione successivo viene indirizzato allo slot scambiato.
  • La funzione attualmente in esecuzione viene terminata durante lo scambio. Per informazioni su come scrivere funzioni senza stato e difensive, vedere Migliorare le prestazioni e l'affidabilità di Funzioni di Azure.

Perché usare gli slot?

L'uso degli slot di distribuzione offre molti vantaggi, tra cui:

  • Ambienti diversi per scopi diversi: l'uso di slot diversi consente di distinguere le istanze dell'app prima di eseguire lo scambio con uno slot di produzione o di staging.
  • Prewarming: la distribuzione in uno slot anziché direttamente nell'ambiente di produzione consente all'app di riscaldamento prima di passare in tempo reale. Inoltre, l'uso degli slot riduce la latenza per i carichi di lavoro attivati da HTTP. Le istanze vengono riscaldate prima della distribuzione, riducendo l'avvio a freddo per le funzioni appena distribuite.
  • Fallback facili: dopo uno scambio con la produzione, lo slot con un'app di staging precedente include ora l'app di produzione precedente. Se le modifiche scambiate nello slot di produzione non sono come previsto, è possibile invertire immediatamente lo scambio per ottenere di nuovo l'ultima istanza valida nota.
  • Ridurre al minimo i riavvii: la modifica delle impostazioni dell'app in uno slot di produzione richiede un riavvio dell'app in esecuzione. È invece possibile modificare le impostazioni in uno slot di staging e scambiare le impostazioni in produzione con un'istanza preavvertita. Gli slot sono il modo consigliato per eseguire la migrazione tra le versioni del runtime di Funzioni mantenendo al tempo stesso la massima disponibilità. Per altre informazioni, vedere Aggiornamento minimo del tempo di inattività.

Operazioni di scambio

Durante uno scambio, uno slot viene considerato l'origine e l'altro è la destinazione. Lo slot di origine ha l'istanza dell'applicazione applicata allo slot di destinazione. I passaggi seguenti assicurano che lo slot di destinazione non verifichi tempi di inattività durante uno scambio:

  1. Applica impostazioni: Impostazioni dallo slot di destinazione vengono applicate a tutte le istanze dello slot di origine. Ad esempio, le impostazioni di produzione vengono applicate all'istanza di gestione temporanea. Le impostazioni applicate includono le categorie seguenti:

  2. Attendere i riavvii e la disponibilità: lo scambio attende che ogni istanza nello slot di origine completi il riavvio e sia disponibile per le richieste. Se un'istanza non viene riavviata, l'operazione di scambio ripristina tutte le modifiche apportate allo slot di origine e arresta l'operazione.

  3. Routing degli aggiornamenti: se tutte le istanze nello slot di origine vengono riscaldate correttamente, i due slot completano lo scambio cambiando le regole di routing. Dopo questo passaggio, lo slot di destinazione (ad esempio, lo slot di produzione) ha l'app precedentemente riscaldata nello slot di origine.

  4. Ripetere l'operazione: ora che lo slot di origine ha l'app preswap in precedenza nello slot di destinazione, completare la stessa operazione applicando tutte le impostazioni e riavviando le istanze per lo slot di origine.

Tenere presente quanto segue:

  • In qualsiasi momento dell'operazione di scambio, l'inizializzazione delle app scambiate avviene nello slot di origine. Lo slot di destinazione rimane online mentre lo slot di origine è preparato, indipendentemente dal fatto che lo scambio abbia esito positivo o negativo.

  • Per scambiare uno slot di staging con lo slot di produzione, assicurarsi che lo slot di produzione sia sempre lo slot di destinazione. In questo modo, l'operazione di scambio non influisce sull'app di produzione.

  • Impostazioni correlate a origini eventi e associazioni devono essere configurate come impostazionidello slot di distribuzione prima di avviare uno scambio. Contrassegnarli come "permanenti" in anticipo garantisce che gli eventi e gli output vengano indirizzati all'istanza corretta.

Gestisci impostazioni

Alcune impostazioni di configurazione sono specifiche dello slot. Di seguito sono elencati i dettagli sulle impostazioni che cambiano quando si scambiano gli slot e che rimangono invariati.

Impostazioni specifiche dello slot:

  • Endpoint di pubblicazione
  • Nomi di dominio personalizzati
  • Certificati non pubblici e impostazioni TLS/SSL
  • Impostazioni di ridimensionamento
  • Restrizioni IP
  • Funzionamento continuo
  • Impostazioni di diagnostica
  • Condivisione di risorse tra le origini (CORS)
  • Endpoint privati

Impostazioni non specifiche dello slot:

  • Impostazioni generali, quali la versione del framework, 32/64 bit, i socket Web
  • Impostazioni dell'app (possono essere configurate per essere associate a uno slot)
  • Stringhe di connessione (possono essere configurate per essere associate a uno slot)
  • Mapping del gestore
  • Certificati pubblici
  • Connessioni ibride *
  • Integrazione della rete virtuale *
  • Endpoint servizio *
  • Rete di distribuzione di contenuti di Azure *

Le funzionalità contrassegnate con un asterisco (*) non vengono scambiate, in base alla progettazione.

Nota

Alcune impostazioni dell'app applicabili alle impostazioni nonwate non vengono scambiate. Ad esempio, poiché le impostazioni di diagnostica non vengono scambiate, le impostazioni dell'app correlate come WEBSITE_HTTPLOGGING_RETENTION_DAYS e DIAGNOSTICS_AZUREBLOBRETENTIONDAYS non vengono scambiate, anche se non vengono visualizzate come impostazioni dello slot.

Creare un'impostazione di distribuzione

È possibile contrassegnare le impostazioni come impostazione di distribuzione, che lo rende permanente. Un'impostazione permanente non viene scambiata con l'istanza dell'app.

Se si crea un'impostazione di distribuzione in uno slot, assicurarsi di creare la stessa impostazione con un valore univoco in qualsiasi altro slot coinvolto in uno scambio. In questo modo, mentre il valore di un'impostazione non cambia, i nomi delle impostazioni rimangono coerenti tra gli slot. Questa coerenza dei nomi garantisce che il codice non tenti di accedere a un'impostazione definita in uno slot ma non in un'altra.

Per creare un'impostazione di distribuzione, seguire questa procedura:

  1. Passare a Slot di distribuzione nell'app per le funzioni e quindi selezionare il nome dello slot.

    Find slots in the Azure portal.

  2. Selezionare Configurazione e quindi selezionare il nome dell'impostazione che si vuole mantenere con lo slot corrente.

    Configure the application setting for a slot in the Azure portal.

  3. Selezionare Impostazione slot di distribuzione e quindi selezionare OK.

    Configure the deployment slot setting.

  4. Dopo che la sezione delle impostazioni scompare, selezionare Salva per mantenere le modifiche

    Save the deployment slot setting.

Distribuzione

Gli slot sono vuoti quando si crea uno slot. È possibile usare una qualsiasi delle tecnologie di distribuzione supportate per distribuire l'applicazione in uno slot.

Scalabilità

Tutti gli slot vengono ridimensionati allo stesso numero di ruoli di lavoro dello slot di produzione.

  • Per i piani a consumo, lo slot viene ridimensionato man mano che l'app per le funzioni viene ridimensionata.
  • Per i piani servizio app, l'app viene ridimensionata a un numero fisso di ruoli di lavoro. Gli slot vengono eseguiti nello stesso numero di ruoli di lavoro del piano dell'app.

Visualizzare gli slot

È possibile visualizzare informazioni sugli slot esistenti usando l'interfaccia della riga di comando di Azure o tramite il portale di Azure.

Usare questi passaggi per creare un nuovo slot nel portale:

  1. Passare all'app per le funzioni.

  2. Selezionare Slot di distribuzione e vengono visualizzati gli slot esistenti.

Aggiungi uno slot

È possibile aggiungere uno slot usando l'interfaccia della riga di comando di Azure o tramite il portale di Azure.

Usare questi passaggi per creare uno slot nel portale:

  1. Passare all'app per le funzioni.

  2. Selezionare Slot di distribuzione e quindi + Aggiungi slot.

    Add Azure Functions deployment slot.

  3. Digitare il nome dello slot e selezionare Aggiungi.

    Name the Azure Functions deployment slot.

Accedere alle risorse dello slot

È possibile accedere alle risorse (trigger HTTP e endpoint di amministratore) in uno slot di staging nello stesso modo dello slot di produzione. Tuttavia, anziché il nome host dell'app per le funzioni si usa il nome host specifico dello slot nell'URL della richiesta, insieme a qualsiasi chiave specifica dello slot. Poiché gli slot di staging sono app attive, è necessario proteggere le funzioni in uno slot di staging come si farebbe nello slot di produzione.

Scambio degli slot

È possibile scambiare gli slot in un ambiente di produzione non in produzione usando l'interfaccia della riga di comando di Azure o tramite il portale di Azure.

Usare questi passaggi per scambiare uno slot di staging nell'ambiente di produzione:

  1. Passare all'app per le funzioni.

  2. Selezionare Slot di distribuzione e quindi Scambia.

    Screenshot that shows the 'Deployment slot' page with the 'Add Slot' action selected.

  3. Verificare le impostazioni di configurazione per lo scambio e selezionare Scambia

    Swap the deployment slot.

L'operazione di scambio può richiedere alcuni secondi.

Eseguire il rollback di uno scambio

Se uno scambio genera un errore o si vuole semplicemente "annullare" uno scambio, è possibile eseguire il rollback allo stato iniziale. Per tornare allo stato preswapped, eseguire un altro scambio per invertire lo scambio.

Rimuovere uno slot

È possibile rimuovere uno slot usando l'interfaccia della riga di comando di Azure o tramite il portale di Azure.

Usare questi passaggi per rimuovere uno slot dall'app nel portale:

  1. Passare a Slot di distribuzione nell'app per le funzioni e quindi selezionare il nome dello slot.

    Find slots in the Azure portal.

  2. Selezionare Elimina.

    Screenshot that shows the 'Overview' page with the 'Delete' action selected.

  3. Digitare il nome dello slot di distribuzione da eliminare e quindi selezionare Elimina.

    Delete the deployment slot in the Azure portal.

  4. Chiudere il riquadro di conferma.

    Deployment slot delete confirmation.

Cambia il piano di servizio app

Con un'app per le funzioni in esecuzione in un piano di servizio app, è possibile modificare il piano di servizio app sottostante per uno slot.

Nota

Non è possibile modificare il piano di servizio app di uno slot nel piano a consumo.

Per modificare il piano di servizio app di uno slot, seguire questa procedura:

  1. Passare a Slot di distribuzione nell'app per le funzioni e quindi selezionare il nome dello slot.

    Find slots in the Azure portal.

  2. In servizio app piano selezionare Cambia piano servizio app.

  3. Selezionare il piano a cui si vuole eseguire l'aggiornamento o creare un nuovo piano.

    Change the App Service plan in the Azure portal.

  4. Seleziona OK.

Considerazioni

Funzioni di Azure slot di distribuzione hanno le considerazioni seguenti:

  • Il numero di slot disponibili per un'app dipende dal piano. Il piano a consumo è consentito solo uno slot di distribuzione. Sono disponibili più slot per le app in esecuzione in altri piani. Per informazioni dettagliate, vedere Limiti del servizio.
  • Lo scambio di uno slot reimposta le chiavi per le app con un'impostazione AzureWebJobsSecretStorageType dell'app uguale a files.
  • Quando gli slot sono abilitati, l'app per le funzioni è impostata sulla modalità di sola lettura nel portale.
  • Usare nomi di app per le funzioni più brevi di 32 caratteri. I nomi con più di 32 caratteri sono a rischio di causare conflitti con ID host.

Passaggi successivi