Distribuzione continua per Funzioni di Azure
Funzioni di Azure consente di distribuire continuamente le modifiche apportate in un repository di controllo del codice sorgente a un'app per le funzioni connessa. Questa integrazione del controllo del codice sorgente consente un flusso di lavoro in cui un aggiornamento del codice attiva la compilazione, la creazione di pacchetti e la distribuzione dal progetto ad Azure.
È consigliabile configurare sempre la distribuzione continua per uno slot di staging e non per lo slot di produzione. Quando si usa lo slot di produzione, gli aggiornamenti del codice vengono inseriti direttamente nell'ambiente di produzione senza essere verificati in Azure. Abilitare invece la distribuzione continua in uno slot di staging, verificare gli aggiornamenti nello slot di staging e dopo che tutto viene eseguito correttamente, è possibile scambiare il codice dello slot di staging nell'ambiente di produzione. Se ci si connette a uno slot di produzione, assicurarsi che solo il codice di qualità di produzione lo renda nel ramo di codice integrato.
I passaggi descritti in questo articolo illustrano come configurare distribuzioni di codice continuo per l'app per le funzioni in Azure usando il Centro distribuzione nel portale di Azure. È anche possibile configurare l'integrazione continua usando l'interfaccia della riga di comando di Azure. Questi passaggi possono essere destinati a uno slot di staging o di produzione.
Funzioni supporta queste origini per la distribuzione continua nell'app:
Gestire il codice del progetto in Azure Repos, uno dei servizi in Azure DevOps. Supporta sia Git che controllo della versione di Team Foundation. Usato con il provider di compilazione di Azure Pipelines. Per altre informazioni, vedere Che cos'è Azure Repos?
È anche possibile connettere l'app per le funzioni a un repository Git esterno, ma richiede una sincronizzazione manuale. Per altre informazioni sulle opzioni di distribuzione, vedere Tecnologie di distribuzione in Funzioni di Azure.
Nota
Le opzioni di distribuzione continua descritte in questo articolo sono specifiche per le distribuzioni di solo codice. Per le distribuzioni di app per le funzioni in contenitori, vedere Abilitare la distribuzione continua di contenitori in Azure.
Requisiti
L'unità di distribuzione per le funzioni in Azure è l'app per le funzioni. Affinché la distribuzione continua abbia esito positivo, la struttura di directory del progetto deve essere compatibile con la struttura di cartelle di base prevista Funzioni di Azure. Quando si crea il progetto di codice usando Funzioni di Azure Core Tools, Visual Studio Code o Visual Studio, i modelli di Funzioni di Azure vengono usati per creare progetti di codice con la struttura di directory corretta. Tutte le funzioni in un'app per le funzioni vengono distribuite contemporaneamente e nello stesso pacchetto.
Dopo aver abilitato la distribuzione continua, l'accesso al codice della funzione nel portale di Azure è configurato come di sola lettura perché l'origine della verità è nota per risiedere altrove.
Nota
Il Centro distribuzione non supporta l'abilitazione della distribuzione continua per un'app per le funzioni con restrizioni di rete in ingresso. È invece necessario configurare il flusso di lavoro del provider di compilazione direttamente in GitHub o Azure Pipelines. Questi flussi di lavoro richiedono anche di usare una macchina virtuale nella stessa rete virtuale dell'app per le funzioni come agente self-hosted (Pipelines) o uno strumento di esecuzione self-hosted (GitHub).
Selezionare un provider di compilazione
La compilazione del progetto di codice fa parte del processo di distribuzione. Il processo di compilazione specifico dipende dallo stack di linguaggio, dal sistema operativo e dal piano di hosting specifico. Le compilazioni possono essere eseguite in locale o in remoto, a seconda dell'hosting specifico. Per ulteriori informazioni, vedere Compilazione remota.
Importante
Per una maggiore sicurezza, è consigliabile usare un provider di compilazione che supporta le identità gestite, tra cui Azure Pipelines e Gitub Actions. Il servizio servizio app (Kudu) richiede l'abilitazione dell'authenication di base e l'uso delle credenziali basate su testo.
Funzioni supporta questi provider di compilazione:
Azure Pipelines è uno dei servizi in Azure DevOps e il provider di compilazione predefinito per i progetti Azure Repos. È anche possibile usare Pipeline per compilare progetti da GitHub. In Pipeline è disponibile un'attività AzureFunctionApp
progettata in modo specifico per la distribuzione in Funzioni di Azure. Questa attività consente di controllare la modalità di compilazione, creazione di pacchetti e distribuzione del progetto. Supporta le identità gestite.
Tenere presenti i punti di forza e le limitazioni di questi provider quando si abilita l'integrazione del controllo del codice sorgente. Potrebbe essere necessario modificare il tipo di origine del repository per sfruttare i vantaggi di un provider specifico.
Configurare la distribuzione continua
Il portale di Azure fornisce un Centro distribuzione per le app per le funzioni, che semplifica la configurazione della distribuzione continua. Il modo specifico in cui si configura la distribuzione continua dipende sia dal tipo di repository di controllo del codice sorgente in cui risiede il codice che dal provider di compilazione scelto .
Nella portale di Azure passare alla pagina dell'app per le funzioni e selezionare Centro distribuzione in Distribuzione nel riquadro sinistro.
Selezionare il tipo di repository di origine in cui viene mantenuto il codice del progetto da una di queste opzioni supportate:
Le distribuzioni da Azure Repos che usano Azure Pipelines vengono definite nel portale di Azure DevOps e non dall'app per le funzioni. Per una guida dettagliata alla creazione di una distribuzione basata su pipeline da Azure Repos, vedere Recapito continuo con Azure Pipelines.
Al termine della distribuzione, tutto il codice dell'origine specificata viene distribuito nell'app. A questo punto, le modifiche nell'origine di distribuzione attivano una distribuzione di tali modifiche all'app per le funzioni in Azure.
Abilitare la distribuzione continua durante la creazione dell'app
Attualmente, è possibile configurare la distribuzione continua da GitHub usando GitHub Actions quando si crea l'app per le funzioni nel portale di Azure. È possibile eseguire questa operazione nella scheda Distribuzione della pagina Crea app per le funzioni.
Se si vuole usare un'origine di distribuzione o un provider di compilazione diverso per l'integrazione continua, creare prima l'app per le funzioni e quindi tornare al portale e configurare l'integrazione continua nel Centro distribuzione.
Abilitare l'autenticazione di base per le distribuzioni
In alcuni casi, l'app per le funzioni viene creata con l'accesso di base all'autenticazione all'endpoint scm
disabilitato. Questo blocca la pubblicazione da parte di tutti i metodi che non possono usare identità gestite per accedere all'endpoint scm
. L'impatto della pubblicazione sulla disabilitazione dell'endpoint scm
è descritto in Distribuzione senza autenticazione di base.
Importante
Quando si usa l'authenication di base, le credenziali vengono inviate in testo non crittografato. Per proteggere queste credenziali, è necessario accedere all'endpoint scm
solo tramite una connessione crittografata (HTTPS) quando si usa l'autenticazione di base. Per altre informazioni, vedere Distribuzione sicura.
Per abilitare l'autenticazione di base per l'endpoint scm
:
Nel portale di Azure passare all'app per le funzioni.
Nel menu a sinistra dell'app selezionare Impostazioni>Configurazione>generale.
Impostare SCM Basic Auth Publishing Credentials (Credenziali di pubblicazione autenticazione di base SCM) su Sì e quindi selezionare Salva.