Condividi tramite


Slot di distribuzione di Funzioni di Azure

Gli slot di distribuzione di Funzioni di Azure 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.

Il numero di slot disponibili dipende dall'opzione di hosting specifica:

Opzione Hosting Slot (incluso l'ambiente di produzione)
Piano a consumo 2
Piano A consumo Flex Non è al momento supportato
Piano Premium 3
Piano dedicato (servizio app) 1-20
App contenitore Usa revisioni

Di seguito viene illustrato come le funzioni vengono influenzate dallo scambio di slot:

  • Il reindirizzamento del traffico avviene senza interuzioni; nessuna richiesta viene eliminata a causa di uno scambio. Questo comportamento senza interruzioni si verifica perché l'attivazione della funzione successiva viene indirizzata 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 numerosi vantaggi, tra cui:

  • Ambienti diversi per scopi diversi: l'uso di slot diversi consente di differenziare le istanze dell'app prima di passare alla produzione o a uno slot di staging.
  • Preriscaldamento: la distribuzione in uno slot anziché direttamente nell'ambiente di produzione consente all'app di riscaldarsi prima della pubblicazione. 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.
  • Facilità di fallback: dopo uno scambio con la produzione, lo slot con un'app gestita precedentemente ha ora l'app di produzione precedente. Se le modifiche scambiate nello slot di produzione non sono quelle previste, è possibile invertire immediatamente lo scambio per ripristinare "l'ultima istanza valida nota".
  • Ridurre al minimo i riavvii: la modifica delle impostazioni dell'app in uno slot di produzione richiede il riavvio dell'app in esecuzione. È invece possibile modificare le impostazioni in uno slot di staging e scambiare le modifiche delle impostazioni in produzione con un'istanza preriscaldata. Gli slot sono il modo consigliato per eseguire la migrazione tra le versioni del runtime di Funzioni mantenendo la massima disponibilità. Per altre informazioni, vedere Aggiornamento del tempo di inattività minimo.

Operazioni di scambio

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

  1. Applica impostazioni: le impostazioni dello 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. Aggiornare il routing: se tutte le istanze nello slot di origine vengono riscaldate correttamente, i due slot completano lo scambio scambiando le regole di gestione. Dopo questo passaggio, lo slot di destinazione (ad esempio, lo slot di produzione) contiene l'app precedentemente riscaldata nello slot di origine.

  4. Ripetere l'operazione: ora che lo slot di origine ha l'app di 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 viene preparato, sia che lo scambio abbia esito positivo o meno.

  • 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.

  • Le impostazioni relative alle origini eventi e alle associazioni devono essere configurate come impostazioni dello slot di distribuzione prima di avviare uno scambio. Contrassegnandoli in anticipo come "permanenti", si garantisce che gli eventi e gli output vengano indirizzati all'istanza corretta.

  • Quando si crea un nuovo slot di staging, tutte le impostazioni esistenti nello slot di produzione vengono create nel nuovo slot, indipendentemente dalla persistenza dell'impostazione.

Gestisci impostazioni

Alcune impostazioni di configurazione sono specifiche dello slot. Gli elenchi seguenti illustrano nel dettaglio quali impostazioni cambiano quando si cambia slot e quali rimangono invariate.

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

Anche alcune impostazioni dell'app applicabili alle impostazioni non scambiate 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 impostazioni di distribuzione, rendendole permanenti. L'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. La coerenza dei nomi garantisce che il codice non tenti di accedere a un'impostazione definita in uno slot ma non in un altro.

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

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

    Trovare gli slot nel portale di Azure.

  2. Selezionare Configurazione, quindi selezionare il nome dell'impostazione da associare allo slot corrente.

    Configurare l'impostazione dell'applicazione per uno slot nel portale di Azure.

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

    Configurare l'impostazione dello slot di distribuzione.

  4. Dopo aver rimosso la sezione delle impostazioni, selezionare Salva per mantenere le modifiche

    Salvare l'impostazione dello slot di distribuzione.

Distribuzione

Gli slot sono vuoti quando si crea uno slot. È possibile usare una qualsiasi delle tecnologie di distribuzione supportate per distribuire l'applicazione su 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 si adatta al ridimensionamento dell'app per le funzioni.
  • Per i piani del 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 le informazioni sugli slot esistenti usando l'interfaccia della riga di comando di Azure o il portale di Azure.

Usare questi passaggi per creare un nuovo slot nel portale:

  1. Passare all'app per le funzioni.

  2. Selezionare gli Slot di distribuzione per visualizzare 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, quindi selezionare + Aggiungi slot.

    Aggiungere slot di distribuzione di Funzioni di Azure.

  3. Digitare il nome dello slot e selezionare Aggiungi.

    Assegnare un nome allo slot di distribuzione di Funzioni di Azure.

Accedere alle risorse dello slot

È possibile accedere alle risorse (trigger HTTP e endpoint dell'amministratore) in uno slot di staging allo stesso modo dello slot di produzione. Tuttavia, al posto del nome host dell'app per le funzioni, nell'URL della richiesta si utilizza il nome host specifico dello slot, 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 nello slot di produzione. produzione.

Scambio degli slot

È possibile scambiare gli slot all'esterno dell'ambiente di 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, quindi selezionare Scambia.

    Screenshot che mostra la pagina

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

    Scambiare lo slot di distribuzione.

L'operazione di scambio può richiedere alcuni secondi.

Eseguire il rollback di uno scambio

Se uno scambio genera un errore o se si vuole semplicemente “annullare” uno scambio, è possibile eseguire il rollback allo stato iniziale. Per tornare allo stato precedente allo scambio, effettuare un altro scambio per invertirlo.

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, quindi selezionare il nome dello slot.

    Trovare gli slot nel portale di Azure.

  2. Selezionare Elimina.

    Screenshot che mostra la pagina

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

    Eliminare lo slot di distribuzione nel portale di Azure.

  4. Chiudere il riquadro di conferma.

    Conferma dell'eliminazione dello slot di distribuzione.

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.

Usare la procedura seguente per modificare il piano di servizio app di uno slot:

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

    Trovare gli slot nel portale di Azure.

  2. In Piano di servizio app, selezionare Modificare il piano di servizio app.

  3. Selezionare il piano da aggiornare o creare un nuovo piano.

    Modificare il piano di servizio app nel portale di Azure.

  4. Seleziona OK.

Considerazioni

Per gli slot di distribuzione di Funzioni di Azure occorre tenere presente quanto segue:

  • Il numero di slot disponibili per un'app dipende dal piano. Al 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 dell'app AzureWebJobsSecretStorageType uguale a files.
  • Quando gli slot sono abilitati, l'app per le funzioni è impostata sulla modalità di sola lettura nel portale.
  • Gli scambi di slot potrebbero non riuscire quando l'app per le funzioni usa un account di archiviazione protetto come account di archiviazione predefinito (impostato in AzureWebJobsStorage). Vedere le informazioni di riferimento per WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS.
  • Usare nomi di app per le funzioni più brevi di 32 caratteri. I nomi con più di 32 caratteri rischiano di causare conflitti di ID host.

Passaggi successivi