Questo tutorial è destinato a coloro che non hanno mai creato app nel cloud, ad esempio ingegneri e sviluppatori web che vogliono imparare i concetti chiave di Google Cloud.
Obiettivi
- Scopri gli strumenti di base di Google Cloud, come Google Cloud Console e
gcloud
. - Eseguire il deployment dell'app nell'ambiente standard di App Engine.
- Rendere persistenti i dati con Firestore.
- Archiviare in Cloud Storage i file caricati.
- Monitorare l'app con la suite operativa di Google Cloud.
Costi
In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:
Le istruzioni in questo documento sono pensate per garantire l'utilizzo delle risorse entro
i limiti del piano Always Free di Google Cloud
livello.
Per generare una stima dei costi basata sull'utilizzo previsto,
utilizza il Calcolatore prezzi.
Al termine delle attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la sezione Pulizia.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Per creare un database Firestore in modalità Native, segui questa procedura:
-
In Google Cloud Console, vai alla pagina Visualizzatore Firestore.
Vai al visualizzatore Firestore - Nella schermata Seleziona una modalità di Cloud Firestore, fai clic su Seleziona modalità nativa.
- Seleziona una località per il tuo database Firestore. La località impostata corrisponde alla località predefinita delle risorse di Google Cloud per il tuo progetto Cloud . Questa località viene utilizzata per i servizi Google Cloud all'interno del tuo progetto Cloud che richiedono la geolocalizzazione. Nello specifico, si tratta del tuo bucket predefinito di Cloud Storage e della tua app App Engine.
- Fai clic su Crea database.
-
In Google Cloud Console, vai alla pagina Visualizzatore Firestore.
-
Enable the App Engine Admin, Cloud Storage, Cloud Logging, and Error Reporting APIs.
-
Clona il repository di esempio e apri l'applicazione di esempio in Cloud Shell:
Vai a Cloud ShellCloud Shell fornisce l'accesso tramite riga di comando alle tue risorse Google Cloud direttamente dal browser.
- Per scaricare il codice di esempio e modificarlo nella directory dell'applicazione, fai clic su Continua.
-
In Cloud Shell, configura lo strumento
gcloud
in modo da utilizzare il nuovo progetto Google Cloud:# Configure gcloud for your project gcloud config set project PROJECT_ID
Sostituisci PROJECT_ID con l'ID progetto Google Cloud che hai creato utilizzando la console Google Cloud.
Google Cloud CLI è il metodo principale per interagire con le risorse Google Cloud dalla riga di comando. In questo tutorial, utilizzerai lo strumento
gcloud
per eseguire il deployment dell'app e per monitorarla.
Esegui l'app
-
Installa le dipendenze dell'applicazione utilizzando
bundler
:bundle install
-
Esegui il
server rails:
GOOGLE_CLOUD_PROJECT=PROJECT_ID bundle exec rails server -p 8080
Sostituisci PROJECT_ID con l'ID del progetto Google Cloud che hai creato. - In Cloud Shell, fai clic su Anteprima web , e seleziona Anteprima sulla porta 8080. Compare una nuova finestra in cui viene eseguita l'app.
Eseguire il deployment dell'app in App Engine
Google Cloud offre varie opzioni per eseguire il codice. In questo esempio, viene utilizzato App Engine per eseguire il deployment di un'applicazione scalabile in Google Cloud. Grazie ai deployment senza necessità di configurazione e ai server che non richiedono gestione, App Engine ti consente di concentrarti sulla scrittura del codice. Inoltre, App Engine scala automaticamente per supportare picchi di traffico improvvisi.
Il fileapp.yaml
è il file di configurazione principale per eseguire il deployment in
App Engine:
-
Nella finestra del terminale, esegui il deployment dell'app in App Engine utilizzando l'interfaccia a riga di comando gcloud:
# on the command-line gcloud app deploy
-
Nel browser web, inserisci l'URL seguente:
https://PROJECT_ID.REGION_ID.r.appspot.com
Sostituisci quanto segue:
PROJECT_ID
: l'ID del tuo progetto Google CloudREGION_ID
: un codice assegnato da App Engine alla tua app
Per ulteriori informazioni sul deployment in App Engine, consulta l'articolo sull'ambiente di runtime di Ruby 2.5.
Mantieni i tuoi dati con Firestore
Non puoi archiviare informazioni sulle istanze di App Engine poiché vengono perse al riavvio dell'istanza e non esistono quando vengono create nuove istanze. Puoi, invece, utilizzare un database in cui tutte le istanze eseguono operazioni di lettura e scrittura.
Google Cloud offre varie opzioni per archiviare i dati. In questo esempio viene utilizzato Firestore per archiviare i dati di ogni libro. Firestore è un database di documenti NoSQL serverless completamente gestito che consente di archiviare i dati e di eseguire query su di essi. Firestore si ridimensiona automaticamente per soddisfare le esigenze dell'app, con una scalabilità fino a zero quando non la utilizzi. Aggiungi il tuo primo libro.
-
Nel browser web, inserisci l'URL seguente:
https://PROJECT_ID.REGION_ID.r.appspot.com
Sostituisci quanto segue:
PROJECT_ID
: l'ID del tuo progetto Google CloudREGION_ID
: un codice assegnato da App Engine alla tua app
-
Per creare un libro per l'applicazione di cui hai eseguito il deployment, fai clic su Add book (Aggiungi libro).
- Nel campo Title (Titolo), inserisci
Moby Dick
. - Nel campo Author (Autore), inserisci
Herman Melville
. -
Fai clic su Salva. Adesso esiste una voce nell'applicazione Bookshelf.
- In Google Cloud Console, fai clic su Aggiorna refresh per aggiornare la pagina di Firestore. I dati vengono visualizzati in Firestore. Ogni libro dell'app Bookshelf è archiviato come documento Firestore con un ID unico e tutti questi documenti sono archiviati in una raccolta Firestore. Ai fini di questo tutorial, la raccolta è chiamata "books" (libri).
Firestore archivia i libri mediante la libreria client di Firestore. Ecco un esempio di come recuperare un documento Firestore:
Per ulteriori informazioni sull'utilizzo di Firestore, consulta Aggiungere dati a Firestore.
Archiviare i caricamenti di file in Cloud Storage
Dopo aver aggiunto un libro, devi aggiungere la rispettiva immagine di copertina. Non puoi archiviare i file nelle istanze. Un database non è la scelta giusta per i file di immagine. Utilizza, invece, Cloud Storage.
Cloud Storage è il principale archivio di blob per Google Cloud. Puoi utilizzare Cloud Storage per archiviare gli asset dell'app che vuoi condividere in Google Cloud. Per utilizzare Cloud Storage, devi creare un bucket Cloud Storage, ovvero un container di base che ospiti i tuoi dati.
- In Google Cloud Console, vai alla pagina Browser Cloud Storage.
- Fai clic su Crea bucket.
- Nella finestra di dialogo Crea bucket, inserisci un nome per il bucket aggiungendo
l'ID del progetto Google Cloud alla stringa
_bucket
, in modo che il nome sia simile aYOUR_PROJECT_ID_bucket
. Questo nome è soggetto ai requisiti per i nomi dei bucket. Puoi lasciare invariati i valori predefiniti di tutti gli altri campi. - Fai clic su Crea.
- Una volta creato il bucket, gli oggetti devono essere resi accessibili pubblicamente per poter essere visualizzati dagli utenti. Per rendere gli oggetti accessibili pubblicamente, consulta la pagina Rendere pubblici i dati.
-
Fai clic su Edit book (Modifica libro) e seleziona un'immagine da caricare come copertina del libro. Ad esempio, puoi utilizzare questa immagine di dominio pubblico:
-
Fai clic su Save (Salva). Viene visualizzata la
home page, dove è presente una voce per la tua app Bookshelf.
L'applicazione Bookshelf invia i file caricati a Cloud Storage mediante la libreria client di Cloud Storage.
Per ulteriori informazioni sull'utilizzo di Cloud Storage, consulta l'elenco di guide illustrative.
Monitora la tua app utilizzando la suite operativa di Google Cloud
Hai eseguito il deployment dell'app e hai creato e modificato i libri. Per monitorare questi eventi per i tuoi utenti, utilizza gestione delle prestazioni delle applicazioni (APM).
Monitorare i log con Cloud Logging
console Google Cloud
-
Nel browser, accedi all'URL
/logs
nell'applicazione:https://PROJECT_ID.REGION_ID.r.appspot.com/logs
Viene inviata una voce personalizzata a Cloud Logging. Questa voce ha una gravità di log di tipo
NOTICE
e contiene il messaggio "Hai attivato una voce di log personalizzata. Ben fatto!". -
Accedi al visualizzatore log
per monitorare l'app in tempo reale. Quando si verifica un errore, è
una delle prime sezioni da controllare.
-
Nell'elenco a discesa delle risorse, seleziona
GAE Application
. -
Nell'elenco a discesa dei log, seleziona Tutti i log.
Viene visualizzata una riga per la voce di log personalizzata.
gcloud
-
Nella finestra del terminale, utilizza Google Cloud CLI per monitorare i log dell'applicazione ascoltando le nuove voci di log:
gcloud app logs tail
-
Nel browser, accedi all'URL
/logs
nell'applicazione:https://PROJECT_ID.REGION_ID.r.appspot.com/logs
Viene inviata una voce personalizzata a Cloud Logging. Questa voce ha una gravità di log di tipo
NOTICE
e contiene il messaggio "Hai attivato una voce di log personalizzata. Ben fatto!"L'output del comando
gcloud
mostra la nuova voce di log:Waiting for new log entries... 2019-03-27 22:17:01 default[20190327t151430] "Hey, you triggered a custom log entry. Good job!"
Monitorare gli errori con Error Reporting
-
In Google Cloud Console, vai alla pagina Error Reporting.
Vai alla pagina Error Reporting
Error Reporting evidenzia errori ed eccezioni nell'app e consente di configurare avvisi al riguardo. -
Nel browser, accedi all'URL
/errors
nell'applicazione
.https://PROJECT_ID.REGION_ID.r.appspot.com/errors
Viene così generata una nuova eccezione di test che viene inviata alla suite operativa di Google Cloud.
-
Nella console di Google Cloud, torna alla pagina Error Reporting. Dopo qualche secondo sarà visibile il nuovo errore. Fai clic su Ricarica automaticamente per evitare di aggiornare manualmente la pagina.
Esegui la pulizia
Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.