Distribuzione continua per Funzioni di AzureContinuous deployment for Azure Functions

Le funzioni di Azure semplificano la distribuzione dell'app per le funzioni usando l'integrazione continua del servizio app.Azure Functions makes it easy to deploy your function app using App Service continuous integration. Le funzioni si integrano con Dropbox, GitHub, BitBucket e Visual Studio Team Services, VSTS.Functions integrates with BitBucket, Dropbox, GitHub, and Visual Studio Team Services (VSTS). In questo modo viene abilitato un flusso di lavoro in cui gli aggiornamenti al codice della funzione vengono eseguiti tramite una di queste distribuzioni del trigger dei servizi integrati in Azure.This enables a workflow where function code updates made by using one of these integrated services trigger deployment to Azure. Se non si ha familiarità con Funzioni di Azure, iniziare con Panoramica di Funzioni di Azure.If you are new to Azure Functions, start with Azure Functions Overview.

La distribuzione continua è un'ottima opzione per i progetti in cui vengono integrati contributi numerosi e frequenti.Continuous deployment is a great option for projects where multiple and frequent contributions are being integrated. Consente anche di mantenere il controllo dell'origine del codice funzione.It also lets you maintain source control on your functions code. Sono attualmente supportate le origini di distribuzione seguenti:The following deployment sources are currently supported:

Le distribuzioni sono configurate in base alla singola app per le funzioni.Deployments are configured on a per-function app basis. Dopo aver abilitato la distribuzione continua, l'accesso al codice di funzione nel portale viene impostato su sola lettura.After continuous deployment is enabled, access to function code in the portal is set to read-only.

Requisiti per la distribuzione continuaContinuous deployment requirements

È necessario che l'origine della distribuzione sia configurata e che il codice funzioni sia presente nell'origine della distribuzione prima di configurare la distribuzione continua.You must have your deployment source configured and your functions code in the deployment source before you set up continuous deployment. In una determinata distribuzione di app per le funzioni, ogni funzione si trova in una sottodirectory denominata, dove il nome della directory è il nome della funzione.In a given function app deployment, each function lives in a named subdirectory, where the directory name is the name of the function.

Il codice per tutte le funzioni in una determinata app per le funzioni si trova in una cartella radice contenente un file di configurazione host e una o più sottocartelle, ognuna delle quali contiene un codice per una funzione separata, come nell'esempio seguente:The code for all of the functions in a given function app lives in a root folder that contains a host configuration file and one or more subfolders, each of which contain the code for a separate function, as in the following example:

wwwroot
 | - host.json
 | - mynodefunction
 | | - function.json
 | | - index.js
 | | - node_modules
 | | | - ... packages ...
 | | - package.json
 | - mycsharpfunction
 | | - function.json
 | | - run.csx

Il file host.json contiene alcune configurazioni specifiche del runtime e si trova nella cartella radice dell'app per le funzioni.The host.json file contains some runtime-specific configuration and sits in the root folder of the function app. Per informazioni sulle impostazioni disponibili vedere il riferimento host.json.For information on settings that are available, see host.json reference.

Ogni funzione ha una cartella che contiene uno o più file di codice, la configurazione function.json e altre dipendenze.Each function has a folder that contains one or more code files, the function.json configuration and other dependencies.

Configurare la distribuzione continuaSet up continuous deployment

Usare la procedura seguente per configurare la distribuzione continua per un'app per le funzioni esistente.Use this procedure to configure continuous deployment for an existing function app. Questa procedura illustra l'integrazione con un archivio di GitHub. Una procedura analoga si applica a Visual Studio Team Services o ad altri servizi di distribuzione.These steps demonstrate integration with a GitHub repository, but similar steps apply for Visual Studio Team Services or other deployment services.

  1. Nell'app per le funzioni nel portale di Azure fare clic su Funzionalità della piattaforma e Opzioni di distribuzione.In your function app in the Azure portal, click Platform features and Deployment options.

    Configurare la distribuzione continua

  2. Quindi, nel pannello Distribuzione fare clic su Installazione.Then in the Deployments blade click Setup.

    Configurare la distribuzione continua

  3. Nel pannello Origine distribuzione fare clic su Scegliere l'origine, quindi inserire le informazioni per l'origine della distribuzione scelta e fare clic su OK.In the Deployment source blade, click Choose source, then fill in the information for your chosen deployment source and click OK.

    Scegliere l'origine della distribuzione

Dopo aver configurato la distribuzione continua, tutti le modifiche dei file nell'origine della distribuzione vengono copiate nell'app per le funzioni e viene attivata una distribuzione completa del sito.After continuous deployment is configured, all file changes in your deployment source are copied to the function app and a full site deployment is triggered. Il sito viene ridistribuito quando vengono aggiornati i file nell'origine.The site is redeployed when files in the source are updated.

Opzioni di distribuzioneDeployment options

Di seguito sono indicati alcuni scenari di distribuzione tipici:The following are some typical deployment scenarios:

Creare una distribuzione di stagingCreate a staging deployment

Le app per le funzioni non supportano ancora slot di distribuzione.Function Apps doesn't yet support deployment slots. È comunque possibile gestire distribuzioni di staging e di produzione separate tramite l'integrazione continua.However, you can still manage separate staging and production deployments by using continuous integration.

Il processo per la configurazione e l'uso di una distribuzione di staging è in genere simile al seguente:The process to configure and work with a staging deployment looks generally like this:

  1. Creare due app per le funzioni nella sottoscrizione, una per il codice di produzione e una per lo staging.Create two function apps in your subscription, one for the production code and one for staging.

  2. Creare un'origine della distribuzione, se non è già presente.Create a deployment source, if you don't already have one. Questo esempio usa GitHub.This example uses GitHub.

  3. Per l'app per le funzioni di produzione, eseguire i passaggi illustrati sopra in Configurare la distribuzione continua e impostare il ramo di distribuzione sul ramo master dell'archivio GitHub.For your production function app, complete the preceding steps in Set up continuous deployment and set the deployment branch to the master branch of your GitHub repository.

    Scegliere il ramo della distribuzione

  4. Ripetere questo passaggio per l'app per le funzioni di staging, ma scegliere il ramo di staging nel repository GitHub.Repeat this step for the staging function app, but choose the staging branch instead in your GitHub repo. Se l'origine della distribuzione non supporta le diramazioni, usare una cartella diversa.If your deployment source doesn't support branching, use a different folder.

  5. Apportare aggiornamenti al codice nel ramo o nella cartella di staging, quindi verificare che le modifiche vengono apportate nella distribuzione di staging.Make updates to your code in the staging branch or folder, then verify that those changes are reflected in the staging deployment.

  6. Dopo i test, unire le modifiche dal ramo di staging nel ramo master.After testing, merge changes from the staging branch into the master branch. Questa unione attiva la distribuzione nell'app per le funzioni di produzione.This merge triggers deployment to the production function app. Se l'origine della distribuzione non supporta i rami, sovrascrivere i file nella cartella di produzione con i file dalla cartella di staging.If your deployment source doesn't support branches, overwrite the files in the production folder with the files from the staging folder.

Trasferire le funzioni esistenti nella distribuzione continuaMove existing functions to continuous deployment

Quando si hanno funzioni esistenti che sono state create e gestite nel portale, è necessario scaricare i file del codice di funzione esistenti tramite FTP o il repository Git locale prima di configurare la distribuzione continua come descritto in precedenza.When you have existing functions that you have created and maintained in the portal, you need to download your existing function code files using FTP or the local Git repository before you can set up continuous deployment as described above. Questa operazione può essere eseguita nelle impostazioni del servizio app dell'app per le funzioni.You can do this in the App Service settings for your function app. Dopo aver scaricato i file, è possibile caricarli nell'origine scelta per la distribuzione continua.After your files are downloaded, you can upload them to your chosen continuous deployment source.

Nota

Dopo aver configurato l'integrazione continua, non sarà più possibile modificare i file di origine nel portale di Funzioni.After you configure continuous integration, you will no longer be able to edit your source files in the Functions portal.

Procedura: Configurare le credenziali di distribuzioneHow to: Configure deployment credentials

Prima di poter scaricare i file dall'app per le funzioni con FTP o l'archivio GIT locale, è necessario configurare le credenziali per accedere al sito.Before you can download files from your function app with FTP or local Git repository, you must configure your credentials to access the site. Le credenziali vengono impostate a livello di app per le funzioni.Credentials are set at the Function app level. Usare la procedura seguente per impostare le credenziali di distribuzione nel portale di Azure:Use the following steps to set deployment credentials in the Azure portal:

  1. Nell'app per le funzioni nel portale di Azure fare clic su Funzionalità della piattaforma e Credenziali distribuzione.In your function app in the Azure portal, click Platform features and Deployment credentials.

    Impostare le credenziali di distribuzione locali

  2. Immettere un nome utente e una password, quindi fare clic su Salva.Type in a username and password, then click Save. È ora possibile usare queste credenziali per accedere all'app per le funzioni da FTP o dal repository Git predefinito.You can now use these credentials to access your function app from FTP or the built-in Git repo.

Procedura: Scaricare i file tramite FTPHow to: Download files using FTP

  1. Nell'app per le funzioni nel portale di Azure fare clic su Funzionalità della piattaforma e su Proprietà, quindi copiare i valori di Utente FTP/distribuzione, Nome host FTP e Nome host FTPS.In your function app in the Azure portal, click Platform features and Properties, then copy the values for FTP/Deployment User, FTP Host Name, and FTPS Host Name.

    Utente FTP/distribuzione deve essere immesso come visualizzato nel portale, includendo il nome dell'app, per rendere disponibile un contesto appropriato per il server FTP.FTP/Deployment User must be entered as displayed in the portal, including the app name, to provide proper context for the FTP server.

    Ottenere le informazioni di distribuzione

  2. Dal client FTP, usare le informazioni di connessione raccolte per connettersi all'app e scaricare i file di origine per le funzioni.From your FTP client, use the connection information you gathered to connect to your app and download the source files for your functions.

Procedura: scaricare file tramite l'archivio GIT localeHow to: Download files using a local Git repository

  1. Nell'app per le funzioni nel portale di Azure fare clic su Funzionalità della piattaforma e Opzioni di distribuzione.In your function app in the Azure portal, click Platform features and Deployment options.

    Configurare la distribuzione continua

  2. Quindi, nel pannello Distribuzione fare clic su Installazione.Then in the Deployments blade click Setup.

    Configurare la distribuzione continua

  3. Nel pannello Origine distribuzione fare clic su Archivio Git locale e quindi fare clic su OK.In the Deployment source blade, click Local Git repository and then click OK.

  4. In Funzionalità della piattaforma fare clic su Proprietà e prendere nota del valore dell'URL GIT.In Platform features, click Properties and note the value of Git URL.

    Configurare la distribuzione continua

  5. Clonare l'archivio nel computer locale tramite il prompt dei comandi compatibile con GIT o con lo strumento GIT preferito.Clone the repository on your local machine using a Git-aware command prompt or your favorite Git tool. Il comando clone GIT è simile al seguente:The Git clone command looks like this:

     git clone https://username@my-function-app.scm.azurewebsites.net:443/my-function-app.git
    
  6. Recuperare i file dell'app per le funzioni nel clone nel computer locale, come nell'esempio seguente:Fetch files from your function app to the clone on your local computer, as in the following example:

     git pull origin master
    

    Se richiesto inserire le credenziali di distribuzione configurate.If requested, supply your configured deployment credentials.

Passaggi successiviNext steps

Best Practices for Azure Functions (Procedure consigliate per Funzioni di Azure)Best Practices for Azure Functions