Esercizio - Creare slot di distribuzione

Completato

Uno slot di distribuzione è un'istanza di un'app Web in cui è possibile testare una nuova versione di un'app prima di distribuirla. Scambiando gli slot è possibile distribuire una nuova versione di un'app senza tempi di inattività.

Si supponga di aver deciso di usare gli slot di distribuzione del servizio app di Azure per semplificare la distribuzione di nuove versioni dell'app Web di social media. Si vuole configurare l'app Web in Azure e uno o più slot di distribuzione.

In questo esercizio si configura un'app Web, si aggiunge un nuovo slot di distribuzione per lo staging e si distribuiscono versioni diverse dell'app Web negli slot di produzione e di staging.

Importante

Per eseguire questo esercizio è necessario disporre di una propria sottoscrizione di Azure e questo potrebbe comportare dei costi. Se non hai ancora una sottoscrizione di Azure, crea un account gratuito prima di iniziare.

Creare un'app Web

Per iniziare, creare una nuova risorsa di tipo app Web nel portale di Azure.

  1. Accedere al portale di Azure.

  2. Dal menu della risorsa o nella pagina Home selezionare Crea una risorsa. Viene visualizzato il riquadro Crea una risorsa.

  3. Mel menu della risorsa selezionare Web e dai risultati selezionare App Web. Verrà visualizzato il riquadro Crea app Web.

  4. Nella scheda Informazioni di base immettere i valori indicati di seguito per ogni impostazione.

    Impostazione Valore
    Dettagli del progetto
    Abbonamento Selezionare la sottoscrizione che si vuole usare per completare l'esercizio
    Gruppo di risorse Selezionare il collegamento Crea nuovo e immettere mslearn-slots, quindi selezionare OK.
    Dettagli dell'istanza
    Nome Immettere un nome univoco.
    Pubblica Codice
    Stack di runtime ASP.NET V4.8
    Sistema operativo Windows
    Area Selezionare un'area nelle vicinanze.
    Piano di servizio app
    Piano Windows Accettare l'impostazione predefinita.
    SKU e dimensioni Accettare l'impostazione predefinita.
  5. Selezionare Avanti: Distribuzione.

  6. Selezionare Avanti: Rete.

  7. Selezionare Avanti: Monitoraggio e immettere il valore seguente per l'impostazione.

    Impostazione Valore
    Application Insights
    Abilita Application Insights Impostare su No
  8. Seleziona Rivedi e crea e quindi seleziona Crea. Attendere il completamento della distribuzione.

  9. Al termine della distribuzione, selezionare Vai alla risorsa. Viene visualizzato il riquadro Servizio app per l'app Web.

Configurare la distribuzione git

Anche se è possibile usare molti strumenti diversi per distribuire il codice nell'app Web, in questo esercizio si configurerà l'app Web per l'uso di un repository Git locale.

  1. In Distribuzione nel menu Servizio app selezionare Centro distribuzione. Verrà visualizzato il riquadro Centro distribuzione per il servizio app.

  2. In Origine nella scheda Impostazioni selezionare Git locale, quindi selezionare Salva sulla barra dei comandi per configurare la distribuzione.

  3. Selezionare la scheda Credenziali GIT locale/FTPS. In Ambito utente immettere un nome utente univoco e la password desiderata, quindi sulla barra dei comandi selezionare Salva. Prendere nota del nome utente e della password per i passaggi successivi.

Configurare il client git e clonare il codice sorgente dell'app Web

A questo punto si configurerà il client git in Cloud Shell e lo si userà per clonare un'app Web di esempio.

  1. Nei controlli globali di Azure nella parte superiore della pagina selezionare l'icona Cloud Shell per avviare una sessione di Azure Cloud Shell.

    Screenshot of the Cloud Shell icon in global controls.

  2. Nella sessione di Cloud Shell selezionare quando richiesto l'esperienza Bash e creare una risorsa di archiviazione per la sottoscrizione.

    Nota

    Cloud Shell richiede una risorsa di archiviazione di Azure per rendere persistenti i file creati in Cloud Shell. Alla prima apertura, Cloud Shell chiede di creare un gruppo di risorse, un account di archiviazione e una condivisione di File di Azure. Questa configurazione viene usata automaticamente per tutte le sessioni di Cloud Shell future.

  3. Immettere il comando seguente in Cloud Shell, sostituendo<your-username> con il nome utente preferito. Questo valore di configurazione non è associato ad alcun account Azure, quindi è possibile usare qualsiasi valore.

    git config --global user.name <your-username>
    
  4. Immettere il comando seguente in Cloud Shell, sostituendo <your-email-address> con l'indirizzo e-mail preferito. Questo valore di configurazione non è associato ad alcun account Azure, quindi è possibile usare qualsiasi valore.

    git config --global user.email <your-email-address>
    
  5. Immettere il codice seguente per creare e aprire una cartella demoapp per il codice sorgente.

    mkdir demoapp
    cd demoapp
    
  6. Immettere il codice seguente per clonare l'origine per l'app Web e aprire la copia locale.

    git clone https://github.com/Azure-Samples/app-service-web-dotnet-get-started.git
    cd app-service-web-dotnet-get-started
    

Configurare un repository Git remoto per distribuire l'app nell'ambiente di produzione

Si userà Git per distribuire il codice sorgente nello slot di produzione dell'app Web e quindi configurare l'URL Git dell'app come repository remoto.

  1. Nel portale di Azure l'app Web dovrebbe essere attiva. Nel menu della risorsa selezionare Panoramica.

  2. Nel riquadro di panoramica per l'app Web, la sezione Informazioni di base ha un URL in Dominio predefinito. Si noti che l'URL contiene il nome della distribuzione per l'app Web.

    Screenshot of the Essentials section, where you Copy the git clone URL.

    Nota

    Se l'URL del clone Git non viene visualizzato nel punto in cui appare nello screenshot precedente, aggiornare il portale.

  3. Passare il puntatore sull’URL git clone, quindi selezionare l'icona Copia negli Appunti. Si noti che questo valore contiene anche il nome utente della distribuzione.

  4. In Cloud Shell eseguire il comando seguente per configurare il repository remoto git con il nome "production". Sostituire <git-clone-url> con il contenuto copiato negli Appunti nel passaggio precedente.

    cd app-service-web-dotnet-get-started
    git remote add production <git-clone-url>
    
  5. Per distribuire l'app Web nello slot di produzione, eseguire questo comando. Quando viene richiesta la password immettere quella per la distribuzione creata nell'attività precedente.

    git push production
    

    La sessione del terminale identifica tutti i processi che si svolgono come parte della distribuzione. Attendere il completamento della distribuzione. Dovrebbe essere visualizzata una notifica di tipo Distribuzione completata.

  6. Nel portale di Azure dovrebbe essere ancora visualizzato il riquadro Panoramica. Passare il puntatore su URL. È possibile fare doppio clic per aprirlo in una nuova scheda del browser oppure copiarlo e incollarlo in una nuova scheda del browser.

    Screenshot of your web app in the production slot.

  7. Chiudere la scheda del browser in cui è visualizzata l'app Web.

Creare un nuovo slot di staging

Per l'app Web è stato creato uno slot, lo slot di produzione, ed è stato distribuito il codice sorgente in questo slot. È ora possibile creare uno slot di distribuzione per lo staging delle nuove versioni dell'app Web.

  1. Nel portale di Azure selezionare Home e in Servizi di Azure selezionare Tutte le risorse. Filtrare in base a Tipo == Servizio app e quindi selezionare Applica.

  2. Ordinare i risultati in base al Tipo e quindi selezionare il servizio app creato. Viene visualizzato il riquadro Servizio app per l'app Web.

  3. In Distribuzione nel menu del Servizio app selezionare Slot di distribuzione. Verrà visualizzato il riquadro Slot di distribuzione per il servizio app.

    Screenshot of the App Service menu with Deployment slots highlighted.

  4. Sulla barra dei comandi selezionare + Aggiungi slot. Viene visualizzato il riquadro Aggiungi uno slot.

  5. Nel campo Nome immettere Staging, accettare l'impostazione predefinita per Clona le impostazioni da e quindi selezionare Aggiungi.

  6. Dopo aver creato lo slot di distribuzione, selezionare Chiudi.

Configurare la distribuzione git per lo slot di staging

Configurare il nuovo slot per l'uso della distribuzione Git.

  1. Nel portale di Azure selezionare la pagina Home e quindi in Servizi di Azure selezionare Tutte le risorse.

  2. Ordinare le risorse in base al Gruppo di risorse. Per il gruppo di risorse mslearn-slots verranno visualizzati due tipi di servizio app. Gli slot di distribuzione sono rappresentati come app separate nel portale.

  3. Selezionare lo slot di staging. Verrà visualizzato il riquadro Panoramica per il servizio app (Slot).

  4. In Distribuzione nel menu Staging selezionare Centro distribuzione.

  5. In Origine nella scheda Impostazioni selezionare Git locale, quindi selezionare Salva sulla barra dei comandi per configurare la distribuzione per lo staging.

  6. Nel riquadro Centro distribuzione risultante selezionare la scheda Credenziali GIT locale/FTPS.

  7. In Ambito utente immettere un nome utente e una password di propria scelta e quindi selezionare Salva. Azure aggiorna le credenziali utente. Prendere nota del nome utente e della password per i passaggi successivi.

Configurare git per distribuire l'app nello slot di staging

Per usare il client Git per distribuire il codice sorgente nel nuovo slot, aggiungere un'ulteriore istanza remota alla configurazione Git.

  1. Nel menu Servizio app selezionare Panoramica. Se viene richiesto di salvare la password per il nome utente creato nell'attività precedente, selezionare Salva.

  2. Nella sezione Informazioni di base del riquadro Panoramica passare il puntatore sul valore di URL clone GIT e selezionare l'icona Copia negli Appunti. Si noti che l'URL contiene il nome della distribuzione di staging.

    Nota

    Se l'URL clone Git non è visualizzato, aggiornare il portale. Si noti che l'URL clone GIT per lo staging è leggermente diverso dall'URL per lo slot di produzione e include il nome dello slot.

  3. In Cloud Shell assicurarsi di essere nella cartella ~/demoapp/app-service-web-dotnet-get-started e quindi eseguire questo comando, sostituendo <git-clone-uri> con l'URL copiato nel passaggio precedente.

    git remote add staging <git-clone-uri>
    

Modificare il codice sorgente dell'app e distribuire l'app nello slot di staging

Successivamente, è possibile apportare una piccola modifica ai file dell'app Web e quindi usare Git per distribuire la nuova versione nello slot di staging:

  1. In Cloud Shell eseguire il comando seguente.

    code .
    
  2. Nell'elenco FILES espandere le cartelle aspnet-get-started>Views>Home e selezionare Index.cshtml.

  3. Trovare il codice HTML seguente.

    <h1>ASP.NET</h1>
    
  4. Sostituire il codice con questo codice HTML.

    <h1>Web App Version 2</h1>
    
  5. Premere CTRL+S per salvare le modifiche, quindi premere CTRL+Q per chiudere l'editor.

  6. In Cloud Shell eseguire il codice seguente per eseguire il commit della nuova versione dell'app in Git e distribuirla nello slot di staging.

    git add .
    git commit -m "New version of web app."
    git push staging
    

    Quando viene richiesto, immettere la password per la distribuzione. Nella sessione di Cloud Shell dovrebbero essere visualizzate le notifiche relative alle operazioni per creare e distribuire lo staging e dovrebbe essere visualizzato il messaggio Distribuzione completata.

Esplorare lo slot di staging

A questo punto è possibile visualizzare la nuova versione dell'app Web passando allo slot di distribuzione di staging.

  1. Nel riquadro Panoramica del portale di Azure per lo slot di staging selezionare Esplora dalla barra dei comandi o selezionare l'URL in Dominio predefinito. La home page per App Web versione 2 di staging viene visualizzata in una scheda del browser.

    Screenshot of the updated web app in the staging slot.

È stato creato uno slot di staging con una versione specifica del codice dell'app Web ed è possibile eseguire test in tale slot. Tenere presente che lo slot di produzione ha la versione precedente dell'app Web e che gli utenti non possono ancora vedere il nuovo codice.