Inizia a sviluppare app Ruby on 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 familiarità con lo sviluppo web Rails. Ti guida nel deployment di una nuova app Rails.
Questo tutorial supporta e richiede Ruby 3.0 o versioni successive.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
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:
In alternativa, puoi utilizzare Cloud Shell, in cui Ruby, Rails e Google Cloud CLI sono già installati.
Per ulteriori informazioni sull'installazione di Rails e delle relative dipendenze, consulta la guida Guida introduttiva a Rails.
Dopo aver completato i prerequisiti, puoi creare e implementare un'app Rails. Le sezioni seguenti ti guidano nella configurazione, nell'esecuzione e nell'implementazione di un'app.
Crea una nuova app
Crea una nuova app di esempio Rails.
rails new appengine_exampleVai alla directory che contiene il codice campione.
cd appengine_example
Esegui l'app localmente
Per eseguire la nuova app Rails sul computer locale:
Avvia un server web locale.
bundle exec rails serverNel browser, vai alla pagina http://localhost:3000/.
L'app di esempio mostra il logo Rails con le versioni di Rails e Ruby.
Aggiungere una pagina semplice
Ora aggiungi una pagina di benvenuto all'app Rails generata.
Per generare la struttura di una nuova pagina, crea un nuovo controller Rails denominato
WelcomeControllercon un'azioneindex.bundle exec rails generate controller Welcome indexApri il file
app/views/welcome/index.html.erbper visualizzare il seguente codice HTML boilerplate.Modifica il file come preferisci. Ad esempio, puoi utilizzare i seguenti contenuti:
Imposta l'azione del controller
indexcome azione principale per Rails. Poi, ogni volta che un utente visita l'app Rails, visualizza la tua pagina di benvenuto.Apri il file
config/routes.rbper visualizzare i seguenti contenuti generati.Per modificare questo file, aggiungi
root 'welcome#index'.Salva il file e chiudilo. Testa l'app Rails come 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, la
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 radice dell'app di esempio e aggiungi
quanto segue:
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.
Genera una nuova chiave segreta.
bundle exec rails secretCopia la chiave segreta generata. Utilizzerai la chiave segreta nel passaggio successivo.
Apri il file
app.yamlche hai creato in precedenza e aggiungi una sezioneenv_variables.env_variablesimposta le variabili di ambiente nell'ambienteproductionnell'ambiente flessibile di App Engine. Il tuoapp.yamldovrebbe essere simile all'esempio seguente, con[SECRET_KEY]sostituito dalla chiave segreta copiata.
Configurare un'app dell'ambiente flessibile di App Engine
Se è la prima volta che esegui il deployment di un'app, devi creare un'app App Engine ambiente flessibile per aiutarti a selezionare la regione in cui eseguire l'app Rails. Puoi leggere ulteriori informazioni su regioni e zone.
Crea un'app App Engine. Per impostazione predefinita, il seguente comando crea due istanze:
gcloud app createSeleziona una regione che supporti 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 questo comando:
gcloud app deploy
Attendi il messaggio che ti informa che l'aggiornamento è stato completato. L'operazione può richiedere diversi minuti.
Accedere all'app Rails di cui è stato eseguito il deployment
Per recuperare l'ID progetto, esegui
gcloud info.Nel browser, inserisci il seguente URL:
https://PROJECT_ID.REGION_ID.r.appspot.comSostituisci quanto segue:
PROJECT_ID: il tuo ID progetto Google CloudREGION_ID: un codice assegnato da App Engine alla tua app
Vengono visualizzati i seguenti contenuti.

Questa volta, la 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 appena
di cui è stato 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 servizio. È normale. Attendi il messaggio che ti avvisa 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 della tua 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 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 Google Cloud o utilizzando gcloud app logs read.
Puoi scoprire di più sulla
lettura dei log utilizzando gcloud CLI.
Esegui la pulizia delle risorse
Al termine del tutorial, puoi eliminare le 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 creato per il tutorial.
Per eliminare il progetto:
- Nella console Google Cloud , vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona quello che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.
Eliminare una versione di App Engine
Per eliminare una versione dell'applicazione:
- Nella console Google Cloud , vai alla pagina Versioni per App Engine.
- Seleziona la casella di controllo per la versione dell'app non predefinita che vuoi eliminare.
- Per eliminare la versione dell'app, fai clic su Elimina.
Passaggi successivi
Scopri come utilizzare Cloud SQL per MySQL con Rails.
Scopri come utilizzare Cloud SQL per PostgreSQL con Rails.
Scopri come eseguire l'esempio Ruby Bookshelf nell'ambiente flessibile di App Engine.
Scopri come eseguire l'esempio Ruby Bookshelf su Compute Engine.
Scopri come eseguire l'esempio Ruby Bookshelf su GKE.