Tecnologie di distribuzione in Funzioni di Azure

È possibile usare diverse tecnologie per distribuire il codice del progetto Funzioni di Azure in Azure. Questo articolo offre una panoramica dei metodi di distribuzione disponibili per l'utente e le raccomandazioni per il metodo migliore da usare in vari scenari. Fornisce anche un elenco completo di e dettagli chiave sulle tecnologie di distribuzione sottostanti.

Metodi di distribuzione

La tecnologia di distribuzione usata per pubblicare il codice nell'app per le funzioni in Azure dipende dalle esigenze specifiche e dal punto del ciclo di sviluppo. Ad esempio, durante lo sviluppo e il test, è possibile eseguire la distribuzione direttamente dallo strumento di sviluppo, ad esempio Visual Studio Code. Quando l'app è in produzione, è più probabile pubblicare continuamente dal controllo del codice sorgente o usando una pipeline di pubblicazione automatizzata, che può includere la convalida e il test.

Nella tabella seguente vengono descritti i metodi di distribuzione disponibili per il progetto di codice.

Tipo di distribuzione Metodi Ideale per...
Strumenti basati su interfaccia della riga di comando di Azure
Pubblicazione di Visual Studio Code
Visual Studio pubblica
Pubblicazione di Core Tools
Distribuzioni durante lo sviluppo e altre distribuzioni improvvisate. Distribuzione del codice su richiesta tramite gli strumenti di sviluppo locali.
Gestito dalla piattaforma Centro di Distribuzione (CI/CD)
Implementazioni dei container
Distribuzione continua (CI/CD) dal controllo del codice sorgente o da un registro contenitori. La piattaforma di hosting gestisce le distribuzioni.
Pipeline esterne Azure Pipelines
GitHub Actions
Pipeline di produzione che includono convalida, test e altre azioni che devono essere eseguite come parte di una distribuzione automatizzata. La pipeline gestisce le implementazioni.

Usare la tecnologia migliore per uno scenario specifico. Per i piani di hosting supportati, molti dei metodi di distribuzione utilizzano zip deployment.

Disponibilità della tecnologia di distribuzione

Il metodo di distribuzione dipende anche dal piano di hosting e dal sistema operativo in cui si esegue l'app per le funzioni.

Funzioni offre attualmente cinque opzioni per l'hosting delle app per le funzioni:

Ogni piano ha comportamenti diversi. Non tutte le tecnologie di distribuzione sono disponibili per ogni piano di hosting e sistema operativo. Questo grafico fornisce informazioni sulle tecnologie di distribuzione supportate:

Tecnologia di distribuzione Piano a consumo Flex Consumo Elastic Premium Dedicato App contenitore
Implementazione del pacchetto Flex Consumption Supportato Non supportato Non supportato Non supportato Non supportato
Distribuzione tramite ZIP Non supportato Supportato Supportato Supportato Non supportato
URL del pacchetto esterno1 Non supportato Supportato Supportato Supportato Non supportato
Immagine del container (Docker) Non supportato Solo Linux Solo Linux Solo Linux Supportato
Controllo del codice sorgente Non supportato compatibile solo con Windows Supportato Supportato Non supportato
Git locale1 Non supportato compatibile solo con Windows Supportato Supportato Non supportato
FTPS1 Non supportato compatibile solo con Windows Supportato Supportato Non supportato
Modifica nel portale2 Non supportato Supportato Supportato Supportato Non supportato
  1. Le tecnologie di distribuzione che richiedono di sincronizzare manualmente i trigger non sono raccomandate.
  2. La modifica nel portale è disabilitata quando il codice viene distribuito alla tua app per le funzioni dall'esterno del portale. Per altre informazioni, inclusi i dettagli del supporto linguistico per la modifica nel portale, vedere Dettagli del supporto linguistico.

Seleziona il tuo piano di hosting in cima a questo articolo per visualizzare le tecnologie di distribuzione e i comportamenti che si applicano alla tua app di funzione.

Concetti chiave

Alcuni concetti chiave sono fondamentali per comprendere il funzionamento delle distribuzioni in Funzioni di Azure.

Archiviazione dei contenuti dell'app tramite piano di hosting

La posizione dei contenuti dell'app distribuiti dipende dal piano di hosting e dalla tecnologia di implementazione:

Piano di hosting Archiviazione del contenuto dell'app
Piano a consumo Flex Un container di distribuzione blob che configuri per l'app funzione.
Consumo, Elastic Premium e Dedicato Il file system dell'app, una condivisione di contenuti File di Azure o un URL di pacchetto esterno, a seconda della tecnologia di distribuzione.
App contenitore di Azure Un'immagine container memorizzata in un registro di container.

Attivazione della sincronizzazione

Quando una distribuzione aggiunge, rimuove o modifica una funzione o la sua configurazione di trigger, l'infrastruttura delle Funzioni deve aggiornare i metadati del trigger per l'app funzione. Questa sincronizzazione avviene automaticamente per molte tecnologie di deployment. Tuttavia, in alcuni casi, è necessario sincronizzare manualmente i trigger.

È sempre necessario sincronizzare manualmente i trigger quando si usano queste opzioni di distribuzione:

È possibile sincronizzare manualmente i trigger in uno dei modi seguenti:

  • Riavvia l'app per le funzioni nel portale di Azure. L'host delle Funzioni esegue una sincronizzazione dei trigger in background dopo l'avvio dell'applicazione.

  • Usare il comando az rest per inviare una richiesta HTTP POST che chiama l'API syncfunctiontriggers, come in questo esempio:

    az rest --method post --url https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Web/sites/<APP_NAME>/syncfunctiontriggers?api-version=2016-08-01
    

Tenere presenti queste considerazioni per l'operazione di sincronizzazione dei trigger:

  • È necessario riavviare manualmente l'app per le funzioni ogni volta che si distribuisce una versione aggiornata del pacchetto di distribuzione usando lo stesso URL del pacchetto esterno.
  • Per le app in esecuzione in un piano a consumo o Elastic Premium, è anche necessario sincronizzare manualmente i trigger in questi scenari:
    • Quando le distribuzioni usano un URL di pacchetto esterno con una distribuzione basata su Resource Manager usando modelli ARM o file Bicep o Terraform.
    • Quando si aggiorna il pacchetto di distribuzione in loco usando lo stesso URL esterno del pacchetto.
  • Quando si aggiungono restrizioni di rete a un'app per le funzioni esistente, è necessario garantire la connettività all'account di archiviazione host predefinito impostato nell'impostazione dell'app AzureWebJobsStorage . Per altre informazioni, vedere Come usare un account di archiviazione protetto con Funzioni di Azure.

Compilazione remota

È possibile richiedere Funzioni di Azure per eseguire una compilazione remota del progetto di codice durante la distribuzione. In questi scenari, richiedere una compilazione remota anziché compilare localmente:

  • Stai distribuendo un'applicazione su un'applicazione per le funzioni basata su Linux che hai sviluppato su un computer Windows. Questa situazione è in genere il caso per lo sviluppo di app Python. È possibile ottenere librerie errate quando si compila il pacchetto di distribuzione in locale in Windows.
  • Il progetto ha dipendenze da un indice di pacchetto personalizzato.
  • Si vuole ridurre le dimensioni del pacchetto di distribuzione.

La modalità di richiesta di una compilazione remota dipende dal fatto che l'app venga eseguita in Azure in Windows o Linux.

Tutte le app per le funzioni in esecuzione in Windows hanno un sito di distribuzione associato. Questo sito gestisce gran parte della distribuzione e della logica di compilazione per Funzioni di Azure.

Quando si distribuisce un'app in Windows, il processo di distribuzione esegue comandi specifici del linguaggio, ad esempio dotnet restore (C#) o npm install (JavaScript).

Quando si usano build remote durante la distribuzione, si applicano le considerazioni seguenti:

  • Le build remote sono supportate per le app per le funzioni in esecuzione in Linux nel piano a consumo. Tuttavia, le opzioni di distribuzione per queste app sono limitate perché non dispongono di un sito di distribuzione compagno.
  • Le app di funzione che girano su Linux in un piano Elastic Premium o in un piano dedicato (App Service) hanno un sito di distribuzione compagno, ma è limitato rispetto a Windows.
  • Non impostare WEBSITE_RUN_FROM_PACKAGE quando richiedi una build remota. Per le app nei piani Linux Consumption, Elastic Premium e Dedicated, abilita invece la build remota utilizzando le impostazioni di distribuzione descritte nella scheda Linux. Il processo di distribuzione può creare un pacchetto dell'output della build e configurare l'app affinché venga eseguita da tale pacchetto.
  • Potrebbero verificarsi problemi con la compilazione remota quando l'app è stata creata prima che la funzionalità sia stata resa disponibile (1° agosto 2019). Per le app meno recenti, creare una nuova app per le funzioni o eseguire az functionapp update --resource-group <RESOURCE_GROUP_NAME> --name <APP_NAME> per aggiornare l'app per le funzioni. Questo comando potrebbe richiedere due tentativi di esito positivo.

Compilazione remota

Per il Flex Consumption, richiedi una build remota passando un parametro di build remota quando inizi la distribuzione. Non si configura la build remota usando le impostazioni dell'applicazione. Per Core Tools e Visual Studio Code, una build remota viene sempre richiesta quando si implementa un'app Python. Per altre informazioni, vedere Distribuzione.

Archiviazione del contenuto dell'app

Flex Consumption memorizza il pacchetto corrente nel container di deployment storage configurato. Di default, questo container si trova nello stesso account usato da AzureWebJobsStorage, ma puoi configurare un account di archiviazione di distribuzione diverso.

Importante

L'account di archiviazione viene usato per archiviare dati importanti dell'app, a volte incluso il codice dell'applicazione stesso. È consigliabile limitare l'accesso da altre app e utenti all'account di archiviazione.

Archiviazione del contenuto dell'app

A seconda della tecnologia di distribuzione, il contenuto della tua app può essere memorizzato sul file system dell'app, su una condivisione di contenuti File di Azure o su un URL di pacchetto esterno. Rivedere dove sono archiviati i contenuti dell'app per ogni tecnologia di distribuzione nella sezione successiva.

Importante

L'account di archiviazione viene usato per archiviare dati importanti dell'app, a volte incluso il codice dell'applicazione stesso. È consigliabile limitare l'accesso da altre app e utenti all'account di archiviazione.

Reti virtuali protette

Quando la tua function app ha gli endpoint privati abilitati e l'accesso alla rete pubblica è disabilitato, l'endpoint di distribuzione non è raggiungibile pubblicamente. Gli strumenti push di distribuzione, inclusi Core Tools, Visual Studio Code, interfaccia della riga di comando di Azure, GitHub Actions e Azure Pipelines, inviano pacchetti a questo endpoint. La macchina, il runner o l'agente che esegue la distribuzione deve avere sia la connettività di rete che la risoluzione DNS per l'endpoint privato di implementazione.

Puoi fornire questa connettività in questi modi:

La risorsa di distribuzione può trovarsi nella stessa rete virtuale o in una rete che ha connettività di routing e DNS verso l'endpoint privato, come una rete virtuale peered.

Le implementazioni dei pacchetti basate su Resource Manager non spingono il pacchetto dal client iniziale all'endpoint di distribuzione. Invece, il servizio di distribuzione recupera il pacchetto dall'URL fornito nella risorsa di distribuzione. L'URL del pacchetto e lo storage di distribuzione devono essere accessibili al servizio di distribuzione. Per Flex Consumption, vedi Eseguire la distribuzione usando Bicep o un modello di Azure Resource Manager.

Per altre informazioni sulla configurazione dell'app per le funzioni in una rete virtuale, vedere Come configurare Funzioni di Azure con una rete virtuale.

Archiviazione dei contenuti e rete delle app

Funzioni di Azure su App contenitore di Azure distribuisce la tua app come immagine container. L'immagine viene memorizzata in un registro container e la rete è gestita dall'ambiente Container Apps. Per maggiori informazioni, consulta Funzioni di Azure on App contenitore di Azure overview and Networking in App contenitore di Azure.

Comportamento di dispiegamento tramite piano di hosting

I seguenti metodi di distribuzione si applicano al piano di hosting selezionato. Per confrontare le tecnologie su tutti i piani, consulta la tabella della disponibilità delle tecnologie di implementazione .

Implementazione del pacchetto Flex Consumption

La distribuzione dei pacchetti è l'unica tecnologia di distribuzione del codice supportata per le app in un piano Flex Consumption. Il processo di distribuzione memorizza un pacchetto .zip pronto all'esecuzione nel container di distribuzione dell'app, e l'app funzionale viene eseguito direttamente da quel pacchetto.

Come usarlo: Distribuisci usando la funzionalità di pubblicazione Visual Studio Code o dalla riga di comando usando Funzioni di Azure Core Tools o interfaccia della riga di comando di Azure. Il compito Azure DevOps e l'azione GitHub selezionano analogamente il comportamento corretto di distribuzione del pacchetto quando rilevano un'app Flex Consumption.

Quando si crea un'app Flex Consumption, è necessario specificare un contenitore di archiviazione di distribuzione (BLOB) e un metodo di autenticazione. Per impostazione predefinita viene usato lo stesso account di archiviazione della connessione AzureWebJobsStorage, con un stringa di connessione come metodo di autenticazione. Di conseguenza, le impostazioni di distribuzione vengono configurate durante la creazione dell'app senza alcuna necessità di impostazioni dell'applicazione.

Quando utilizzarlo: Usa il deployment dei pacchetti per tutte le implementazioni di codice Flex Consumption. Non è supportata nessun'altra tecnologia di distribuzione del codice.

Dove viene archiviato il contenuto dell'app: quando si crea un'app per le funzioni Flex Consumption, si specifica un contenitore di archiviazione della distribuzione. Il servizio di distribuzione memorizza il pacchetto elaborato e pronto all'esecuzione in questo container. Gli strumenti di distribuzione push inviano prima il pacchetto sorgente all'endpoint di distribuzione dell'app; non caricano direttamente sul container di distribuzione. Per cambiare la posizione di archiviazione, apri la pagina delle impostazioni di distribuzione nel portale Azure o usa la CLI di interfaccia della riga di comando di Azure.

L'API della piattaforma sottostante è talvolta identificata come OneDeploy. Le definizioni di infrastructure-as-code espongono questa implementazione attraverso il nome letterale /onedeploy della risorsa. Non è necessario selezionare o configurare questa API quando si implementa utilizzando strumenti di sviluppo supportati o provider CI/CD.

Suggerimento

Uno strumento di diagnostica Flex Consumption Deployment è disponibile nel portale di Azure. Aprire l'app Flex Consumption, selezionare Diagnosi e risoluzione dei problemi e cercare Flex Consumption Deployment. Questo strumento visualizza informazioni dettagliate sulle distribuzioni, tra cui la cronologia della distribuzione, lo stato del pacchetto e le raccomandazioni per la risoluzione dei problemi.

Distribuzione tramite ZIP

La distribuzione ZIP è la tecnologia di distribuzione predefinita e consigliata per le app per le funzioni nei piani Consumption, Elastic Premium e Dedicated (App Service). Il risultato finale è un pacchetto di .zip pronto per l'esecuzione dell'app per le funzioni. Differisce dall'URL del pacchetto esterno in quanto la piattaforma è responsabile della compilazione remota e dell'archiviazione del contenuto dell'app.

Come usarlo: Distribuisci utilizzando il tuo strumento client preferito: Visual Studio Code, Visual Studio, oppure dalla riga di comando usando Funzioni di Azure Core Tools o interfaccia della riga di comando di Azure. Il task Azure DevOps e GitHub Action utilizzano analogamente il deployment ZIP.

Quando usi la distribuzione ZIP, puoi impostare l'app per eseguire l'app da un pacchetto. Per eseguire dal pacchetto, impostare il valore dell'impostazione dell'applicazione WEBSITE_RUN_FROM_PACKAGE su 1. Raccomandiamo il dispiegamento di ZIP. Garantisce tempi di caricamento più rapidi per le tue applicazioni, ed è il valore predefinito per Visual Studio Code, Visual Studio e interfaccia della riga di comando di Azure.

Quando utilizzarlo: La distribuzione ZIP è la tecnologia di distribuzione predefinita e raccomandata per le app funzione nei piani Windows Consumption, Windows and Linux Elastic Premium e Windows and Linux App Service (dedicato).

Dove vengono archiviati i contenuti dell'app: Per impostazione predefinita, i contenuti dell'app provenienti da una distribuzione ZIP vengono archiviati nel file system, che Azure può supportare tramite File di Azure usando l'account di archiviazione specificato durante la creazione dell'app per le funzioni. In Linux Consumption, il contenuto dell'app viene invece salvato in modo permanente in un BLOB nello storage account specificato dall'impostazione dell'app AzureWebJobsStorage e l'impostazione dell'app WEBSITE_RUN_FROM_PACKAGE assume il valore dell'URL del BLOB.

URL del pacchetto esterno

Usa un URL di pacchetto esterno quando vuoi controllare manualmente come avvengono le distribuzioni. Sei responsabile di caricare un pacchetto .zip pronto all'esecuzione che contiene il contenuto dell'app costruita nello storage di blob e di fare riferimento a questo URL esterno come impostazione applicativa nella tua app di funzione. Ogni volta che la tua app si riavvia, recupera il pacchetto, lo monta e viene eseguita dal pacchetto.

Come usarlo: aggiungere WEBSITE_RUN_FROM_PACKAGE alle impostazioni dell'applicazione. Il valore di questa impostazione deve essere un URL BLOB che punta al percorso del pacchetto specifico che si vuole eseguire l'app. È possibile aggiungere impostazioni nel portale o by usando il interfaccia della riga di comando di Azure.

Se usi Archiviazione BLOB di Azure, la tua function app può accedere al container sia tramite una connessione gestita basata sull'identità sia con una firma di accesso condiviso (SAS). L'opzione scelta influisce sul tipo di URL usato come valore per WEBSITE_RUN_FROM_PACKAGE. L'identità gestita è consigliata per la sicurezza complessiva e perché i token di firma di accesso condiviso scadono e devono essere gestiti manualmente.

Ogni volta che si distribuisce il file di pacchetto a cui fa riferimento un'app per le funzioni, è necessario sincronizzare manualmente i trigger, inclusa la distribuzione iniziale. Quando si modifica il contenuto del file del pacchetto e non l'URL stesso, è anche necessario riavviare l'app per le funzioni per sincronizzare i trigger. Per i passaggi di configurazione, vedi Run from an external package URL.

Quando usarlo: l'URL del pacchetto esterno è l'unico metodo di distribuzione supportato per le app in esecuzione nel piano a consumo per Linux quando non si vuole che si verifichi una compilazione remota. Questo metodo è anche la tecnologia di distribuzione consigliata quando si creare l'app senza File di Azure. Per le app scalabili in esecuzione in Linux, è consigliabile prendere in considerazione l'hosting del piano a consumo Flex.

Dove viene archiviato il contenuto dell'app: si è responsabili del caricamento del contenuto dell'app nell'archivio BLOB. Puoi usare qualsiasi account di blob storage, anche se Archiviazione BLOB di Azure è consigliato.

Contenitore Docker

È possibile distribuire un'app per le funzioni in esecuzione in un contenitore Linux.

Come usarlo: Creare le funzioni in un contenitore Linux quindi distribuire il contenitore in un piano Premium o dedicato in Funzioni di Azure o in un altro host contenitore. Usare Funzioni di Azure Core Tools per creare un Dockerfile personalizzato per il progetto usato per compilare un'app per le funzioni in contenitori. È possibile usare il contenitore nelle distribuzioni seguenti:

Quando usarlo: usare l'opzione contenitore Docker quando è necessario un maggiore controllo sull'ambiente Linux in cui viene eseguita l'app per le funzioni e dove è ospitato il contenitore. Questo meccanismo di distribuzione è disponibile solo per le funzioni in esecuzione in Linux.

Dove viene archiviato il contenuto dell'app: Il contenuto dell'app viene archiviato nel registro contenitori specificato come parte dell'immagine.

Controllo del codice sorgente

È possibile abilitare l'integrazione continua tra l'app per le funzioni e un repository di codice sorgente. Quando si abilita il controllo del codice sorgente, un aggiornamento al codice nel repository di origine connesso attiva la distribuzione del codice più recente dal repository. Per ulteriori informazioni, vedere la distribuzione continua per Funzioni di Azure.

Come usarlo: il modo più semplice per configurare la pubblicazione dal controllo del codice sorgente è dal Centro distribuzione nell'area Funzioni del portale. Per ulteriori informazioni, vedere Distribuzione continua per Funzioni di Azure.

Quando usarlo: l'uso del controllo del codice sorgente è la procedura consigliata per i team che collaborano alle app per le funzioni. Il controllo del codice sorgente è un'opzione di distribuzione valida che consente pipeline di distribuzione più sofisticate. In genere, si abilita il controllo del codice sorgente in uno slot di staging, che è possibile scambiare nell'ambiente di produzione dopo la convalida degli aggiornamenti dal repository. Per altre informazioni, vedere Slot di distribuzione di Funzioni di Azure.

Dove viene archiviato il contenuto dell'app: Il sistema di controllo del codice sorgente archivia il contenuto dell'app. Il file system dell'app archivia una versione del contenuto dell'app clonato e costruito localmente, che potrebbe essere supportato da File di Azure dell'account di archiviazione specificato al momento della creazione dell'app per le funzioni.

Repository Git locale

Usare Git locale per eseguire il push del codice dal computer locale per Funzioni di Azure usando Git.

Come usarlo: Seguire le istruzioni riportate in Distribuzione Git locale in Servizio app di Azure.

Quando usarlo: Per ridurre la probabilità di errori, evitare di usare metodi di distribuzione che richiedono il passaggio aggiuntivo di sincronizzazione manuale dei trigger. Usare la distribuzione ZIP, quando possibile.

Dove sono memorizzati i contenuti dell'app: Il file system memorizza i contenuti dell'app. Il file system potrebbe essere supportato da File di Azure dall'account di archiviazione che specifichi quando crei l'app di funzione.

FTPS

Puoi usare FTPS per trasferire direttamente file su Funzioni di Azure, ma non usare questo metodo di distribuzione. Quando non hai intenzione di usare FTPS, disabilitalo. Per informazioni su come nel portale di Azure, vedere Enforce FTPS.

Come usarlo: Seguire le istruzioni in Impostazioni di distribuzione FTPS per ottenere l'URL e le credenziali che è possibile usare per distribuire nell'app per le funzioni usando FTPS.

Quando usarlo: Per ridurre la probabilità di errori, evitare di usare metodi di distribuzione che richiedono il passaggio aggiuntivo di sincronizzazione manuale dei trigger. Usare la distribuzione ZIP, quando possibile.

Dove viene archiviato il contenuto dell'app: Il contenuto dell'app viene archiviato nel file system. Le distribuzioni FTP/FTPS hanno esito negativo quando il file system dell'app è supportato da File di Azure nell'account di archiviazione host predefinito. FTP/FTPS fallisce con File di Azure come archiviazione montata a causa di limitazioni FTP.

Modifica del portale

Nell'editor basato sul portale è possibile modificare direttamente i file presenti nell'app per le funzioni (essenzialmente distribuendo ogni volta che si salvano le modifiche).

Come usarlo: Per modificare le funzioni nel portale Azure portal, è necessario creare le funzioni nel portale. Per mantenere un'unica origine di verità, l'uso di qualsiasi altro metodo di distribuzione rende la funzione di sola lettura e impedisce la modifica continua del portale. Per tornare a uno stato in cui è possibile modificare i file nel portale di Azure, è possibile ripristinare manualmente la modalità di modifica in Read/Write e rimuovere eventuali impostazioni dell'applicazione correlate alla distribuzione (ad esempio WEBSITE_RUN_FROM_PACKAGE).

Quando usarlo: Il portale è un buon modo per cominciare a utilizzare Funzioni di Azure. A causa delle limitazioni di development nel portale di Azure, è consigliabile usare uno degli strumenti client seguenti per operazioni di sviluppo più avanzate:

Dove viene memorizzato il contenuto dell'app: il contenuto dell'app viene memorizzato nel file system, che potrebbe essere supportato da File di Azure dall'account di archiviazione specificato durante la creazione dell'app per le funzioni.

Distribuzione dell'immagine del container

Funzioni di Azure su App contenitore di Azure distribuisce il tuo codice come immagine container. Puoi distribuire da un progetto di codice utilizzando l'esperienza gestita delle Container Apps, oppure distribuire un'immagine personalizzata quando hai bisogno di controllo sul contenuto dell'immagine. Per altre informazioni, vedere Creare un'app per le funzioni in App contenitore di Azure usando il codice e Panoramica di Funzioni di Azure in App contenitore di Azure.

Comportamenti di distribuzione

Quando distribuisci aggiornamenti al codice della tua funzione app, il comportamento di distribuzione dipende dal tuo piano di hosting.

Attualmente le funzioni in esecuzione si fermano quando distribuisci nuovo codice. Al termine del deployment, il nuovo codice si carica e inizia a elaborare le richieste. Questo comportamento di terminazione forzata è noto come strategia di ricreazione. Per distribuzioni con tempi di inattività prossimi allo zero, usa gli slot di distribuzione.

Esaminare Migliorare le prestazioni e l'affidabilità di Funzioni di Azure per sapere come scrivere funzioni difensive e senza stato.

Il comportamento predefinito utilizza la strategia di ricreazione, che interrompe l'esecuzione attuale delle funzioni durante il deployment. Flex Consumption supporta due strategie di aggiornamento dei siti. È possibile configurare gli aggiornamenti in sequenza per le distribuzioni senza tempi di inattività.

App contenitore di Azure gestisce gli aggiornamenti delle applicazioni utilizzando revisioni. Per maggiori informazioni su come controllare come le nuove revisioni ricevono il traffico, consulta Aggiorna e distribuisci le modifiche in App contenitore di Azure.

Slot di distribuzione

Flex Consumption non supporta gli slot di distribuzione. Per implementazioni senza tempo di inattività, configura gli aggiornamenti continui.

Slot di distribuzione

Quando si distribuisce l'app per le funzioni in Azure, è possibile eseguire la distribuzione in uno slot di distribuzione separato anziché direttamente nell'ambiente di produzione. La distribuzione in uno slot di distribuzione e quindi lo scambio in produzione dopo la verifica è il modo consigliato per configurare la distribuzione continua.

Il modo in cui si esegue la distribuzione in uno slot dipende dallo strumento di distribuzione specifico usato. Ad esempio, quando usi Funzioni di Azure Core Tools, includi l'opzione --slot per indicare il nome di uno slot specifico per il func azure functionapp publish comando.

Per altre informazioni sugli slot di distribuzione, vedere la documentazione Slot di distribuzione di Funzioni di Azure.

Passaggi successivi

Leggere questi articoli per altre informazioni sulla distribuzione delle app per le funzioni: