Creare un'app Ruby con App Web di Azure in Linux:anteprima

Nota

App Web di Azure su Linux è attualmente disponibile in anteprima pubblica e supporta l'esecuzione di app Web in modo nativo su Linux.

Panoramica

In questa esercitazione viene illustrato come creare un'applicazione Ruby on Rails di base in locale e distribuirla in App Web di Azure in Linux.

Prerequisiti

Creare una nuova applicazione Rails locale

  1. Creare una directory per la nuova app e passare a tale directory.

     mkdir ~/workspace
     cd ~/workspace
    
  2. Inizializzare Ruby e verificare che la versione usi il comando ruby -v.

    Init di Ruby

  3. Installare Rails usando il comando gem install rails.

    Installare Rails

  4. Creare un'applicazione Rails denominata hello-world usando il comando seguente:

    Se si usa Rails 5.1.0 o versioni successive, includere l'opzione --skip-yarn come mostrato nel comando seguente:

     rails new hello-world --skip-yarn
    

    Per le versioni di Rails precedenti alla 5.1.0, usare il comando seguente:

     rails new hello-world 
    

    Nuovo Hello-world

    Nuovo Hello-world

    Se si usano le versioni di Rails 5.1 e successive, viene creato package.json se l'opzione --skip-yarn non viene usata. Non si desidera includerla nella distribuzione. In alternativa, è possibile eliminare il file package.json o aggiungerlo al file .git-ignore nella directory come segue:

     # Ignore package.json
     /package.json
    
  5. Passare alla directory hello-world e avviare il server.

     cd hello-world
     rails server
    

    Avviare Hello-world

  6. Tramite il Web browser, passare a http://localhost:3000 per testare l'app in locale.

    Hello-world

Preparare l'app per Azure

Per impostazione predefinita, l'immagine di Ruby esegue il server con il flag -e production. Questo ambiente richiede alcune configurazioni per App Web di Azure in Linux. Il contenitore si occupa di alcune configurazioni, ad esempio impostando SECRET_KEY_BASE. È necessario configurare una route predefinita. In caso contrario, esplorando il sito viene visualizzato un errore 404.

Per configurare una route predefinita:

  1. Aprire ~/workspace/hello-world/config/routes.rb per la modifica. Aggiungere la riga seguente come illustrato nella schermata.

     root 'application#hello'
    

    routes.rb

  2. Aprire ~/workspace/hello-world/app/controllers/application_controller.rb per la modifica. Aggiungere le righe seguenti come illustrato nella schermata.

     def hello
         render html: "Hello, world from Azure Web App on Linux!"
     end
    

    routes.rb

  3. Ora l'app è configurata. Tramite il Web browser, passare a http://localhost:3000 per confermare la pagina di destinazione principale.

    Hello World configurato

Creare un sito Web di Ruby in Azure

  1. Passare al portale di Azure ed eseguire l'accesso con la sottoscrizione. Aggiungere un'App Web su Linux come illustrato nella schermata seguente:

    Creare un'App Web in Linux

  2. Viene quindi aperto il pannello Crea, come illustrato nell'immagine seguente:

    Pannello Crea

    1. Assegnare all'app Web un nome.
    2. Scegliere un gruppo di risorse esistente oppure crearne uno nuovo. Vedere le aree disponibili nella sezione sulle limitazioni.
    3. Scegliere un piano di servizio app di Azure esistente o crearne uno nuovo. Vedere le note sul piano di servizio app nella sezione sulle limitazioni.
    4. Scegliere lo stack di runtime predefinito Ruby 2.3 per la configurazione del contenitore.
    5. Fare clic su Aggiungi al dashboard per l'app Web.
    6. Fare clic su Crea.
  3. Dopo aver creato l'app Web, viene visualizzato il pannello Panoramica. Copiare l'URL per la nuova app Web e aprirlo nel browser. Viene visualizzata la pagina iniziale seguente.

    pagina iniziale

Distribuire l'applicazione

In questa esercitazione, viene usato Git per distribuire l'applicazione locale Ruby in Azure.

  1. Il nuovo sito Web di Azure ha già una distribuzione Git configurata. È possibile trovare l'URL di distribuzione Git passando all'URL seguente dopo l'inserimento del nome dell'app Web:

     https://{your web app name}.scm.azurewebsites.net/api/scm/info
    

    L'URL Git ha il formato seguente, in base al nome dell'app Web:

     https://{your web app name}.scm.azurewebsites.net/{your web app name}.git
    
  2. Eseguire i comandi seguenti per distribuire l'applicazione locale al sito Web di Azure.

     cd ~/workspace/hello-world
     git init
     git remote add azure <Git deployment URL from above>
     git add -A
     git commit -m "Initial deployment commit"
     git push master
    

    Verificare che per le operazioni di distribuzione in remoto venga segnalato l'esito positivo.

    Distribuzione dell'app Web

    Se viene visualizzato un errore che informa che il computer remoto presenta dei problemi, è probabile che la distribuzione sia ancora in corso. In questo caso, passare all'URL seguente nel browser:

     https://{your web app name}.scm.azurewebsites.net/api/deployments
    
  3. Dopo aver completato la distribuzione, riavviare l'app Web affinché la distribuzione venga applicata. Nel portale di Azure passare al pannello Panoramica dell'app Web.

    Fare clic su Riavvia nella barra degli strumenti.

    Riavviare l'app Web

  4. Passare al sito e verificare che gli aggiornamenti siano attivi.

    Mentre l'app viene riavviata, il tentativo di aprire il sito genera un errore HTTP con codice di stato 503, Server non disponibile. Il completamento del riavvio potrebbe richiedere alcuni minuti.

     http://{your web app name}.azurewebsites.net
    

    app Web aggiornata

Passaggi successivi

Per altre informazioni su App Web del Servizio app di Azure in Linux, vedere i collegamenti seguenti. È anche possibile pubblicare domande e dubbi nel forum.