Esegui Rails 7 nell'ambiente flessibile di App Engine

Inizia a sviluppare app Ruby su Rails eseguite nell' ambiente flessibile di App Engine. Le app che crei vengono eseguite nella stessa infrastruttura su cui si basano tutti i prodotti Google, quindi sono in grado di garantire la scalabilità necessaria per adattarsi a qualsiasi numero di utenti, piccolo o grande che sia.

Questo tutorial presuppone che tu abbia dimestichezza con lo sviluppo web di Rails. Ti guida attraverso il deployment di una nuova app Rails.

Questo tutorial supporta e richiede Ruby 3.0 o versioni successive.

Prima di iniziare

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. Installa Google Cloud CLI.

  4. Configura gcloud CLI per utilizzare la tua identità federata.

    Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.

  5. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init

Configura l'ambiente locale per Rails

Per configurare l'ambiente locale per lo sviluppo di Rails, devi:

  1. Installare Ruby versione 3.0 o successive.

  2. Installare il gem Rails 7.

  3. Installare il gem Bundler.

In alternativa, puoi utilizzare Cloud Shell, che include già Ruby, Rails e Google Cloud CLI.

Per ulteriori informazioni sull'installazione di Rails e delle relative dipendenze, consulta la guida Guida introduttiva a Rails ufficiale.

Una volta completati i prerequisiti, puoi creare ed eseguire il deployment di un'app Rails. Le sezioni seguenti ti guideranno nella configurazione, nell'esecuzione e nel deployment di un'app.

Crea una nuova app

  1. Crea una nuova app di esempio Rails.

    rails new appengine_example
    
  2. Vai alla directory che contiene il codice campione.

    cd appengine_example
    

Esegui l'app localmente

Per eseguire la nuova app Rails sul computer locale:

  1. Avvia un server web locale.

     bundle exec rails server
    
  2. Nel browser, vai alla pagina http://localhost:3000/.

    L'app di esempio mostra il logo Rails con le versioni di Rails e Ruby.

Aggiungi una pagina semplice

Ora aggiungi una pagina di benvenuto all'app Rails generata.

  1. Per generare lo scaffolding per una nuova pagina, crea un nuovo controller Rails denominato WelcomeController con un'azione index.

    bundle exec rails generate controller Welcome index
    
  2. Apri il file app/views/welcome/index.html.erb per visualizzare il seguente HTML boilerplate.

    <h1>Welcome#index</h1>
    <p>Find me in app/views/welcome/index.html.erb</p>
  3. Modifica il file come preferisci. Ad esempio, puoi utilizzare i seguenti contenuti:

    <h1>Welcome</h1>
    <p>This is a home page for a new Rails App on Google Cloud Platform!</p>
  4. Imposta l'azione del controller index come azione principale per Rails. Poi, ogni volta che un utente visita l'app Rails, visualizza la pagina di benvenuto.

  5. Apri il file config/routes.rb per visualizzare i seguenti contenuti generati.

    Rails.application.routes.draw do
      get 'welcome/index'
    
      # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
    end
  6. Per modificare questo file, aggiungi root 'welcome#index'.

    Rails.application.routes.draw do
      get 'welcome/index'
    
      # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
      root 'welcome#index'
    end
  7. Salva il file e chiudilo. Testa l'app Rails come hai fatto in precedenza.

Esegui il deployment dell'app nell'ambiente flessibile di App Engine

L'ambiente flessibile di App Engine utilizza un file denominato app.yaml. per descrivere la configurazione del deployment di un'app. Se questo file non è presente, gcloud CLI tenta di indovinare la configurazione del deployment. Tuttavia, è consigliabile fornire questo file perché Rails richiede una chiave segreta in un ambiente di produzione.

Per configurare l'app di esempio per il deployment in App Engine, crea un nuovo file denominato app.yaml nella directory principale dell'app di esempio e aggiungi quanto segue:

entrypoint: bundle exec rackup --port $PORT
env: flex
runtime: ruby

Configura la chiave segreta di Rails

Quando esegui il deployment di un'app Rails nell'ambiente di produzione, imposta la variabile di ambiente SECRET_KEY_BASE su una chiave segreta utilizzata per proteggere i dati della sessione utente. Questa variabile di ambiente viene letta nel file config/secrets.yml.

  1. Genera una nuova chiave segreta.

    bundle exec rails secret
    
  2. Copia la chiave segreta generata. Utilizzerai la chiave segreta nel passaggio successivo.

  3. Apri il file app.yaml che hai creato in precedenza e aggiungi una sezione env_variables. env_variables imposta le variabili di ambiente nell'ambiente production nell'ambiente flessibile di App Engine. Il file app.yaml dovrebbe essere simile all'esempio seguente, con [SECRET_KEY] sostituito dalla chiave segreta copiata.

    entrypoint: bundle exec rackup --port $PORT
    env: flex
    runtime: ruby
    
    env_variables:
      SECRET_KEY_BASE: [SECRET_KEY]

Configura un'app per l'ambiente flessibile di App Engine

Se è la prima volta che esegui il deployment di un'app, devi creare un' app per l'ambiente flessibile di App Engine per selezionare la regione in cui eseguire l'app Rails. Puoi scoprire di più su regioni e zone.

  1. Crea un'app App Engine. Per impostazione predefinita, il comando seguente crea due istanze:

    gcloud app create
    
  2. Seleziona una regione che supporta l'ambiente flessibile di App Engine per le app Ruby.

Esegui il deployment nell'ambiente flessibile di App Engine

Esegui il deployment dell'app di esempio eseguendo il seguente comando:

gcloud app deploy

Attendi il messaggio che ti informa che l'aggiornamento è stato completato. L'operazione può richiedere diversi minuti.

Accedi all'app Rails di cui hai eseguito il deployment

  1. Per recuperare l'ID progetto, esegui gcloud info.

  2. Nel browser, inserisci l'URL seguente:

    https://PROJECT_ID.REGION_ID.r.appspot.com

    Sostituisci quanto segue:

Vengono visualizzati i seguenti contenuti.

Screenshot della nuova app Rails in esecuzione

Questa volta, la tua richiesta viene gestita dall'app Rails in esecuzione nell'ambiente flessibile di App Engine.

Questo comando esegue il deployment dell'app come descritto in app.yaml e imposta la versione di cui è stato appena eseguito il deployment come versione predefinita, in modo che gestisca tutto il nuovo traffico. Durante il deployment dell'app, potresti visualizzare diversi messaggi ripetuti mentre la piattaforma verifica se l'app è in esecuzione. È normale. Attendi il messaggio che ti informa che l'aggiornamento dell'app è stato completato.

Se intendi aggiornare l'applicazione, puoi distribuire la versione aggiornata inserendo lo stesso comando che hai utilizzato per la prima distribuzione dell'applicazione. Il nuovo deployment crea una nuova versione dell'app e la promuove alla versione predefinita. Le versioni precedenti dell'applicazione verranno mantenute, così come le istanze VM associate. Tieni presente che tutte queste versioni dell'app e le istanze VM sono risorse fatturabili.

Leggi i log di App Engine

Ora che hai eseguito il deployment dell'app Rails, potresti voler leggere i log. Puoi leggere i log dell'app utilizzando Esplora log nella console o utilizzando gcloud app logs read. Cloud de Confiance Puoi scoprire di più su come leggere i log utilizzando gcloud CLI.

Libera spazio

Al termine del tutorial, puoi liberare spazio dalle risorse che hai creato in modo che non utilizzino più la quota generando addebiti. Le seguenti sezioni descrivono come eliminare o disattivare queste risorse.

Elimina progetto

Il modo più semplice per eliminare la fatturazione è eliminare il progetto che hai creato per il tutorial.

Per eliminare il progetto:

  1. Nella Cloud de Confiance console, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.

Elimina una versione di App Engine

Per eliminare una versione dell'applicazione:

  1. Nella Cloud de Confiance console, vai alla pagina Versioni di App Engine.

    Vai a Versioni

  2. Seleziona la casella di controllo per la versione dell'app non predefinita che vuoi eliminare.
  3. Per eliminare la versione dell'app, fai clic su Elimina.

Passaggi successivi