Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nei piani di hosting che supportano gli slot di distribuzione, la tua app per le funzioni può essere eseguita in istanze separate denominate slot. Ogni slot è un ambiente separato con il proprio nome host. L'accesso all'endpoint di uno slot dipende dalle restrizioni di rete e di accesso che configuri per quello slot. Uno slot è sempre quello di produzione, e puoi scambiare uno slot di staging disponibile con quello di produzione 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 (uno slot di produzione e uno slot di staging) |
| Piano A consumo Flex | Attualmente non supportata. Per le distribuzioni senza interruzioni del servizio, vedere Strategie di aggiornamento del sito in Flex Consumption. |
| Piano Premium | 3 |
| Piano dedicato (servizio app) | 1-20 |
| App contenitore di Azure | Gli slot di distribuzione non si applicano. Usa le revisioni. |
Seleziona il tuo piano di hosting in cima a questo articolo per visualizzare le linee guida che si applicano alla tua app per la funzione.
Distribuire senza slot in Flex Consumption
Il piano Flex Consumption non supporta gli slot di distribuzione. Per rilasci controllati e implementazioni senza tempo di inattività, usa gli aggiornamenti continui come strategia di aggiornamento del sito.
Deploy con revisioni su App contenitore di Azure
Funzioni di Azure su App contenitore di Azure non usa slot di distribuzione. Usa le revisioni per gestire e indirizzare il traffico tra le versioni della tua app funzionale.
Nei piani di consumo, premium e dedicati, gli slot di distribuzione si comportano come segue:
- Durante la commutazione dell'instradamento, le nuove invocazioni dei trigger di funzione vengono instradate allo slot oggetto dello scambio senza richiedere il riavvio esplicito dell'applicazione.
- Lo scambio di slot non garantisce l'assenza di tempi di inattività. Le funzioni attualmente in esecuzione possono essere terminate e può verificarsi una riduzione della disponibilità nelle app con scalabilità durante le operazioni di scambio degli slot. Per informazioni su come scrivere funzioni senza stato e difensive, vedere Migliorare le prestazioni e l'affidabilità di Funzioni di Azure. Se le distribuzioni senza tempi di inattività sono un requisito, considerare il piano Flex Consumption con aggiornamenti continui come strategia di aggiornamento del sito.
Perché usare gli slot?
L'uso degli slot di distribuzione offre numerosi vantaggi, tra cui:
- Ambienti diversi per scopi diversi: Utilizzando slot diversi, puoi differenziare le istanze dell'app prima di passare a uno slot di produzione o di staging.
- Preriscaldamento: Esegui la distribuzione in uno slot anziché direttamente nell'ambiente di produzione, per inizializzare l'app prima che venga messa online. 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 che hai scambiato nello slot di produzione non sono quelle che ti aspettavi, puoi immediatamente invertire lo scambio per recuperare la tua "ultima istanza buona conosciuta".
- 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 funge da origine e l'altro da destinazione. Lo slot di origine contiene l'istanza dell'applicazione che applichi allo slot di destinazione. I passaggi seguenti consentono di ridurre i tempi di inattività nello slot di destinazione durante uno scambio:
Applica impostazioni: Applica le impostazioni dallo slot di destinazione a tutte le istanze dello slot di origine. Ad esempio, applica le impostazioni di produzione all'istanza di staging. Le impostazioni applicate includono le categorie seguenti:
- Impostazioni dell'app specifiche dello slot e stringhe di connessione (se applicabile)
- Impostazioni di Distribuzione continua (se abilitata)
- Impostazioni di autenticazione del servizio app (se abilitata)
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.
Aggiornare l'instradamento: Se tutte le istanze sullo slot sorgente si riscaldano con successo, i due slot completano lo scambio cambiando le regole di instradamento. Dopo questo passaggio, lo slot di destinazione (ad esempio, lo slot di produzione) contiene l'app precedentemente riscaldata nello slot di origine.
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 quello di produzione, assicurati che lo slot di produzione sia sempre quello di destinazione. In questo modo, l'operazione di scambio non influisce sull'app di produzione.
Configura le impostazioni relative alle sorgenti di eventi e ai binding come impostazioni di slot di distribuzioneprima di iniziare uno swap. Contrassegnandoli in anticipo come "permanenti", si garantisce che gli eventi e gli output vengano indirizzati all'istanza corretta.
Quando crei un nuovo slot di staging, il portale crea nel nuovo slot tutte le impostazioni esistenti dello slot di produzione, indipendentemente dalla persistenza dell'impostazione.
Gestire le impostazioni
Alcune impostazioni di configurazione sono specifiche per uno slot. Le seguenti liste dettagliano quali impostazioni cambiano quando si scambiano slot e quali restano le stesse.
Impostazioni specifiche dello slot:
- Endpoint di pubblicazione
- Nomi di dominio personalizzati
- Certificati non pubblici e impostazioni TLS/SSL
- Impostazioni di scalabilità
- Restrizioni IP
- Always On
- Impostazioni di diagnostica
- Condivisione di risorse tra le origini (CORS)
- Endpoint privati
Impostazioni non specifiche dello slot:
- Impostazioni generali, come la versione del framework, 32/64 bit e web socket
- Impostazioni app (possono essere configurate per adattarsi a uno slot)
- Stringhe di connessione (possono essere configurate per adattarsi a uno slot)
- Mapping dei gestori
- Certificati pubblici
- Connessioni ibride *
- Integrazione della rete virtuale *
- Endpoint di servizio *
- Rete per la distribuzione di contenuti di Azure *
Le funzionalità contrassegnate con un asterisco (*) non vengono scambiate, in base alla progettazione.
Note
Alcune impostazioni dell'app che si applicano a quelle non scambiate non sono cambiate. Ad esempio, dato che le impostazioni diagnostiche non sono scambiate, le impostazioni correlate delle app come WEBSITE_HTTPLOGGING_RETENTION_DAYS e DIAGNOSTICS_AZUREBLOBRETENTIONDAYS non sono scambiate, anche se non compaiono come impostazioni di 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 crei un'impostazione di distribuzione in uno slot, assicurati di creare la stessa impostazione con un valore unico 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:
Vai a Deployment slots nell'app per le funzioni, quindi seleziona il nome dello slot.
Selezionare Configurazione, quindi selezionare il nome dell'impostazione da associare allo slot corrente.
Selezionare Impostazione slot di distribuzione, quindi selezionare OK.
Dopo la chiusura della sezione impostazioni, seleziona Salva per conservare le modifiche.
Distribuisci un'app in uno slot
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.
Come vengono ridimensionati gli slot di distribuzione
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
Puoi visualizzare informazioni sugli slot esistenti utilizzando sia la interfaccia della riga di comando di Azure che il portale Azure.
Usa questi passaggi per visualizzare gli slot esistenti nel portale:
Vai all'app per le funzioni.
Seleziona slot di distribuzione e visualizza quelli esistenti.
Aggiungi uno slot
Puoi aggiungere uno slot usando sia la interfaccia della riga di comando di Azure che il portale Azure.
Usare questi passaggi per creare uno slot nel portale:
Vai alla tua app per le funzioni.
Selezionare Slot di distribuzione, quindi selezionare + Aggiungi slot.
Digitare il nome dello slot e selezionare Aggiungi.
Puoi anche creare uno slot usando template o file Bicep di Azure Resource Manager (ARM). Per un esempio su come creare un'app per le funzioni in un piano a consumo con uno slot di distribuzione, consultare questa guida introduttiva di Azure Resource Manager.
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
Puoi scambiare slot in e fuori dalla produzione usando sia la interfaccia della riga di comando di Azure che il portale Azure.
Usare questi passaggi per scambiare uno slot di staging nell'ambiente di produzione:
Vai all'app per le funzionalità.
Selezionare Slot di distribuzione, quindi selezionare Scambia.
Verificare le impostazioni di configurazione per lo scambio e selezionare Scambia.
L'operazione di scambio può richiedere alcuni secondi.
Eseguire il rollback di uno scambio
Se uno swap dà un errore o vuoi annullare uno swap, puoi tornare allo stato iniziale. Per tornare allo stato precedente allo scambio, effettuare un altro scambio per invertirlo.
Rimuovere uno slot
Puoi rimuovere uno slot usando sia la interfaccia della riga di comando di Azure che il portale Azure.
Usare questi passaggi per rimuovere uno slot dall'app nel portale:
Vai a Slot di distribuzione nell'app per le funzioni, quindi seleziona il nome dello slot.
Selezionare Elimina.
Digitare il nome dello slot di distribuzione da eliminare, quindi selezionare Elimina.
Chiudere il riquadro di conferma.
Cambia il piano di servizio app
Con un'app di funzione che gira sotto un piano App Service, puoi cambiare il piano App Service sottostante per uno slot.
Usare la procedura seguente per modificare il piano di servizio app di uno slot:
Vai a Deployment slots nell'app per le funzioni, quindi seleziona il nome dello slot.
In Piano di servizio app, selezionare Modificare il piano di servizio app.
Selezionare il piano da aggiornare o creare un nuovo piano.
Selezionare 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. Il piano Consumo supporta due slot in totale: quello di produzione e uno slot di staging. 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
AzureWebJobsSecretStorageTypeuguale afiles. - Quando attivi gli slot, il portale imposta l'app per le funzioni in modalità di sola lettura.
- Gli scambi di slot potrebbero fallire quando la tua function app utilizza un account di archiviazione protetto come account di archiviazione predefinito (impostato in
AzureWebJobsStorage). Per altre informazioni, vedere il riferimentoWEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS. - Usare nomi di app per le funzioni più brevi di 32 caratteri. I nomi più lunghi di 32 caratteri possono causare collisioni tra gli ID dell'host.