Questo tutorial è destinato a coloro che non hanno mai creato applicazioni nel cloud, ad esempio ingegneri e sviluppatori web che vogliono imparare i concetti chiave di Google Cloud come si applicano a Google Cloud.
Obiettivi
- Imparare a utilizzare gli strumenti di base di Google Cloud , come la Google Cloud console e
gcloud. - Eseguire il deployment dell'app in Cloud Run.
- Rendere persistenti i dati con Firestore.
- Archiviare in Cloud Storage i file caricati.
- Monitorare l'app utilizzando Google Cloud Observability.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:
Le istruzioni riportate in questo documento sono pensate per mantenere l'utilizzo delle risorse entro
i limiti del Google Cloud's Sempre senza costi
livello.
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il calcolatore prezzi.
Al termine delle attività descritte in questo documento, puoi evitare l'addebito di ulteriori costi eliminando le risorse che hai creato. Per saperne di più, consulta Esegui la pulizia.
Prima di iniziare
- Accedi al tuo Google Cloud account. 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 carichi di lavoro.
-
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.
-
Per creare un database Firestore in modalità Native, segui questa procedura:
-
Nella Google Cloud console, vai alla pagina Crea database Firestore.
- Dalla schermata Seleziona una modalità di Cloud Firestore, fai clic su Seleziona modalità Native.
- Seleziona una località per il tuo database Firestore. La località impostata corrisponde alla località Google Cloud delle risorse predefinita per il tuo Google Cloud progetto . Questa località viene utilizzata per i Google Cloud servizi all'interno del tuo Google Cloud progetto che richiedono la geolocalizzazione. Nello specifico, si tratta del tuo bucket predefinito di Cloud Storage e della tua app Cloud Run.
- Fai clic su Crea database.
-
Nella Google Cloud console, vai alla pagina Crea database Firestore.
-
Abilita le API Artifact Registry, Cloud Run Admin, Cloud Build, Cloud Storage, Cloud Logging ed Error Reporting.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli. -
Clona il repository di esempio e apri l'applicazione di esempio in Cloud Shell:
Vai a Cloud ShellCloud Shell fornisce l'accesso da riga di comando alle tue Google Cloud risorse direttamente dal browser.
- Quando ti viene chiesto di clonare il repository, fai clic su Conferma.
-
In Cloud Shell, configura lo strumento
gcloudin modo da utilizzare il nuovo Google Cloud progetto:# Configure gcloud for your project gcloud config set project PROJECT_ID
Sostituisci PROJECT_ID con l' Google Cloud ID progetto che hai creato utilizzando la Google Cloud console.
Il Google Cloud CLI è il metodo principale per interagire con le tue Google Cloud risorse dalla riga di comando. In questo tutorial utilizzerai lo strumento
gcloudper eseguire il deployment dell'app e per monitorarla.
Esegui l'app
-
Installa le dipendenze dell'app utilizzando
bundler:bundle install -
Esegui il
server Rails:
Sostituisci PROJECT_ID con l' Google Cloud ID progetto che hai creato.GOOGLE_CLOUD_PROJECT=PROJECT_ID bundle exec rails server -p 8080
- In Cloud Shell, fai clic su Anteprima web , e seleziona Anteprima sulla porta 8080. Compare una nuova finestra in cui viene eseguita l'app.
Esecuzione del deployment dell'app in Cloud Run
Google Cloud offre varie opzioni per eseguire il codice. In questo esempio, viene utilizzato Cloud Run per eseguire il deployment di un'app scalabile in Google Cloud. Cloud Run non richiede la gestione dei server e si ridimensiona automaticamente per supportare i picchi di traffico.
- Esegui il container con Cloud Run:
gcloud run deploy bookshelf --region us-central1 --allow-unauthenticated \ --set-env-vars="GOOGLE_CLOUD_PROJECT=
PROJECT_ID" --source .Ora l'app è visualizzabile all'URL visualizzato nell'output di
gcloud run:Service [bookshelf] revision [bookshelf-00001] has been deployed and is serving 100 percent of traffic. Service URL: https://bookshelf-swsmmh5s5a-uc.a.run.app
-
Copia l'URL nel browser web per visualizzare l'app.
Per ulteriori informazioni sul deployment in Cloud Run, consulta la documentazione di Cloud Run.
Rendere persistenti i dati con Firestore
Non puoi archiviare informazioni sulle istanze di Cloud Run 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.
-
Per creare un libro per l'applicazione di cui hai eseguito il deployment, fai clic su Aggiungi libro.
- Nel campo Title (Titolo), inserisci
Moby Dick. - Nel campo Author (Autore), inserisci
Herman Melville. -
Fai clic su Save (Save). Adesso esiste una voce nell'applicazione Bookshelf.
-
Nella 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: