Distribuzione dell'archivio Git locale nel servizio app di Azure

In questa esercitazione viene illustrato come distribuire l'applicazione nel servizio app di Azure da un repository Git nel computer locale. Il servizio app supporta questo approccio tramite l'opzione di distribuzione Archivio Git locale del portale di Azure.
Molti comandi Git descritti in questo articolo vengono eseguiti automaticamente quando si crea un'app del servizio app usando l'interfaccia della riga di comando di Azure come descritto qui.

Prerequisiti

Per completare questa esercitazione, sono necessari:

Nota

Per iniziare a usare il servizio app di Azure prima di registrarsi per ottenere un account Azure, andare a Prova il servizio app, dove è possibile creare un'app iniziale temporanea nel servizio app. Non è necessario fornire una carta di credito né impegnarsi in alcun modo.

Passaggio 1: Creare un repository locale

Per creare un nuovo repository Git, eseguire le operazioni seguenti.

  1. Avviare uno strumento da riga di comando, ad esempio GitBash (Windows) o Bash (shell Unix). Nei sistemi OS X è possibile accedere alla riga di comando tramite l'applicazione Terminale .
  2. Passare alla directory in cui deve essere collocato il contenuto da distribuire.
  3. Eseguire il comando seguente per inizializzare un nuovo repository Git:
git init

Passaggio 2: Eseguire il commit del contenuto

Il servizio app supporta applicazioni create in diversi linguaggi di programmazione.

  1. Se il repository include già il contenuto ignorare questo passaggio e passare al passaggio 2. Se non include ancora il contenuto, popolare il repository con un file HTML statico come indicato di seguito:

    • Usando un editor di testo creare un nuovo file denominato index.html nella radice del repository Git
    • Aggiungere il testo seguente come contenuto del file index.html e salvarlo: Hello Git!
  2. Dalla riga di comando verificare che sia selezionata la radice del repository Git. Usare quindi il comando seguente per aggiungere file al repository:
git add -A
  1. In seguito, eseguire il commit delle modifiche al repository con il comando seguente:
git commit -m "Hello Azure App Service"

Passaggio 3: Abilitare il repository dell'app del servizio app

Eseguire la procedura seguente per abilitare un repository Git per l'app del servizio app.

  1. Accedere al portale di Azure.
  2. Nel pannello dell'app del servizio app fare clic su Impostazioni > Origine distribuzione. Fare clic su Scegliere l'origine, quindi su Repository Git locale e infine su OK.

    Repository Git locale

  3. Se si tratta della prima impostazione di un repository in Azure, è necessario creare le credenziali di accesso, che verranno usate per accedere al repository di Azure e per effettuare il push delle modifiche dal repository Git locale. Dal pannello dell'app fare clic su Impostazioni > Credenziali per la distribuzione, quindi configurare il nome utente e la password per la distribuzione. Al termine, fare clic su Salva.

Passaggio 4: Distribuire il progetto

Eseguire la procedura seguente per pubblicare l'app nel servizio app usando l'archivio Git locale.

  1. Nel pannello dell'app nel portale di Azure fare clic su Impostazioni > Proprietà per l'URL GIT.

    URL Git è il riferimento remoto in cui eseguire la distribuzione dal repository locale. Questo URL verrà utilizzato nella procedura seguente.

  2. Usando la riga di comando verificare che sia selezionata la radice del repository Git locale.
  3. Utilizzare git remote per aggiungere il riferimento remoto elencato in URL Git dal passaggio 1. Il comando sarà simile al seguente:

     git remote add azure https://<username>@localgitdeployment.scm.azurewebsites.net:443/localgitdeployment.git         
    
    Nota

    Il comando remote consente di aggiungere un riferimento denominato a un repository remoto. In questo esempio viene creato un riferimento denominato 'azure' per il repository dell'app Web.

  4. Effettuare il push del contenuto nel servizio app usando il nuovo riferimento remoto azure creato.
git push azure master
You will be prompted for the password you created earlier when you reset your deployment credentials in the Azure Portal. Enter the password (note that Gitbash does not echo asterisks to the console as you type your password). 
  1. Tornare all'app nel portale di Azure. Nel pannello Distribuzioni verrà visualizzata una voce di log dell'ultimo push effettuato.

  2. Fare clic sul pulsante Sfoglia nella parte superiore del pannello dell'app per verificare che il contenuto sia stato distribuito.

Risoluzione dei problemi

Di seguito sono riportati gli errori o i problemi che si verificano comunemente durante l'uso di Git per la pubblicazione in un'app del servizio app di Azure:


Sintomo: non è possibile accedere a '[siteURL]'. La connessione a [scmAddress] non è riuscita.

Causa: questo errore può verificarsi se l'app non è in esecuzione.

Soluzione: avviare l'app nel portale di Azure. La distribuzione Git non funziona se l'app non è in esecuzione.


Sintomo: non è possibile risolvere il nome dell'host 'nomehost'.

Causa: questo errore può verificarsi se le informazioni sull'indirizzo immesse durante la creazione del repository remoto 'azure' non sono corrette.

Soluzione: usare il comando git remote -v per elencare tutti i repository remoti, insieme agli URL associati. Verificare che l'URL del repository remoto 'azure' sia corretto. Se necessario, rimuovere e ricreare questo repository remoto usando l'URL corretto.


Sintomo: non sono stati trovati riferimenti in comune e non ne sono stati specificati. Non viene eseguita alcuna operazione. Forse è necessario specificare un ramo, ad esempio 'master'.

Causa: questo errore può verificarsi se non si specifica un ramo quando si effettua un'operazione push in Git e non è stato impostato il valore push.default usato da Git.

Soluzione: ripetere l'operazione push, specificando il ramo master. Ad esempio:

git push azure master

Sintomo: non sono state trovate corrispondenze per src refspec [nomeramo].

Causa: questo errore può verificarsi se si tenta di effettuare il push in un ramo diverso dal master nel repository remoto 'azure'.

Soluzione: ripetere l'operazione push, specificando il ramo master. Ad esempio:

git push azure master

Sintomo: RPC non riuscita; risultato = 22, codice HTTP = 502.

Causa: questo errore può verificarsi se si tenta di effettuare il push di un repository Git di grandi dimensioni tramite HTTPS.

Soluzione: modificare la configurazione Git nel computer locale per ingrandire il postBuffer

git config --global http.postBuffer 524288000

Sintomo: errore. Le modifiche vengono sottoposte a commit nel repository remoto ma l'app Web non viene aggiornata.

Causa: questo errore può verificarsi se si distribuisce un'app Node.js contenente un file package.json che specifica altri moduli necessari.

Risoluzione: i messaggi aggiuntivi contenenti 'npm ERR!' dovrebbero essere registrati prima di questo errore e possono fornire contesto aggiuntivo sul problema. Di seguito sono riportate le cause note di questo errore e del corrispondente messaggio 'npm ERR!' messaggio:

  • File package.json in formato non corretto: npm ERR! Non è stato possibile leggere le dipendenze.
  • Modulo nativo senza una distribuzione binaria per Windows:

    • npm ERR! Si è verificato un errore di `cmd "/c" "node-gyp rebuild"` con 1

      OPPURE

    • npm ERR! [modulename@version] preinstall: `make || gmake`

Risorse aggiuntive