arrow_back

Introduzione a Cloud Run

Accedi Partecipa
Metti alla prova le tue conoscenze e condividile con la nostra community.
done
Accedi a oltre 700 lab pratici, badge delle competenze e corsi

Introduzione a Cloud Run

Lab 1 ora universal_currency_alt 5 crediti show_chart Introduttivi
info Questo lab potrebbe incorporare strumenti di AI a supporto del tuo apprendimento.
Metti alla prova le tue conoscenze e condividile con la nostra community.
done
Accedi a oltre 700 lab pratici, badge delle competenze e corsi

Panoramica

Logo Cloud Run

Cloud Run è una piattaforma gestita di computing che consente di eseguire container stateless richiamabili tramite richieste HTTP. Cloud Run è serverless. Astrae completamente la gestione dell'infrastruttura per consentirti di concentrarti su quello che conta davvero: creare applicazioni fantastiche.

Cloud Run è basato su Knative per consentirti di scegliere se eseguire i container in maniera completamente gestita con Cloud Run o nel tuo cluster Google Kubernetes Engine con Cloud Run su GKE.

L'obiettivo di questo lab è creare una semplice immagine dell'applicazione containerizzata ed eseguirne il deployment su Cloud Run.

Obiettivi

In questo lab imparerai a:

  • Abilitare l'API Cloud Run.
  • Creare una semplice applicazione Node.js di cui sia possibile eseguire il deployment come container serverless e stateless.
  • Containerizzare l'applicazione e caricarla in Artifact Registry.
  • Eseguire il deployment di un'applicazione containerizzata in Cloud Run.
  • Eliminare le immagini non necessarie per evitare costi di archiviazione aggiuntivi.

Configurazione e requisiti

Per ciascun lab, riceverai un nuovo progetto Google Cloud e un insieme di risorse per un periodo di tempo limitato senza alcun costo aggiuntivo.

  1. Fai clic sul pulsante Avvia lab. Se devi effettuare il pagamento per il lab, si apre una finestra popup per permetterti di selezionare il metodo di pagamento. A sinistra, trovi il riquadro Dettagli lab con le seguenti informazioni:

    • Il pulsante Apri console Google Cloud
    • Tempo rimanente
    • Credenziali temporanee da utilizzare per il lab
    • Altre informazioni per seguire questo lab, se necessario
  2. Fai clic su Apri console Google Cloud (o fai clic con il tasto destro del mouse e seleziona Apri link in finestra di navigazione in incognito se utilizzi il browser Chrome).

    Il lab avvia le risorse e apre un'altra scheda con la pagina di accesso.

    Suggerimento: disponi le schede in finestre separate posizionate fianco a fianco.

    Nota: se visualizzi la finestra di dialogo Scegli un account, fai clic su Usa un altro account.
  3. Se necessario, copia il Nome utente di seguito e incollalo nella finestra di dialogo di accesso.

    {{{user_0.username | "Username"}}}

    Puoi trovare il Nome utente anche nel riquadro Dettagli lab.

  4. Fai clic su Avanti.

  5. Copia la Password di seguito e incollala nella finestra di dialogo di benvenuto.

    {{{user_0.password | "Password"}}}

    Puoi trovare la Password anche nel riquadro Dettagli lab.

  6. Fai clic su Avanti.

    Importante: devi utilizzare le credenziali fornite dal lab. Non utilizzare le credenziali del tuo account Google Cloud. Nota: utilizzare il tuo account Google Cloud per questo lab potrebbe comportare addebiti aggiuntivi.
  7. Fai clic nelle pagine successive:

    • Accetta i termini e le condizioni.
    • Non inserire opzioni di recupero o l'autenticazione a due fattori, perché si tratta di un account temporaneo.
    • Non registrarti per le prove gratuite.

Dopo qualche istante, la console Google Cloud si apre in questa scheda.

Nota: per visualizzare un menu con un elenco di prodotti e servizi Google Cloud, fai clic sul menu di navigazione in alto a sinistra. Icona menu di navigazione

Attiva Google Cloud Shell

Google Cloud Shell è una macchina virtuale in cui sono caricati strumenti per sviluppatori. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud.

Google Cloud Shell fornisce l'accesso da riga di comando alle risorse Google Cloud.

  1. Nella barra degli strumenti in alto a destra della console Cloud, fai clic sul pulsante Apri Cloud Shell.

    Icona Cloud Shell in evidenza

  2. Fai clic su Continua.

Bastano pochi istanti per eseguire il provisioning e connettersi all'ambiente. Quando la connessione è attiva, l'autenticazione è già avvenuta e il progetto è impostato sul tuo PROJECT_ID. Ad esempio:

ID progetto evidenziato nel terminale Cloud Shell

gcloud è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento.

  • Puoi visualizzare il nome dell'account attivo con questo comando:
gcloud auth list

Output:

Credentialed accounts: - @.com (active)

Output di esempio:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Puoi elencare l'ID progetto con questo comando:
gcloud config list project

Output:

[core] project =

Output di esempio:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: la documentazione completa di gcloud è disponibile nella guida Panoramica dell'interfaccia a riga di comando gcloud .

Riferimento

Comandi Linux di base

Di seguito troverai un elenco di riferimento di alcuni comandi Linux molto basilari che possono essere inclusi nelle istruzioni o nei blocchi di codice per questo lab.

Comando --> Azione . Comando --> Azione
mkdir (make directory) crea una nuova cartella . cd (change directory) passa a un'altra cartella
ls (list ) elenca file e cartelle contenuti nella directory . cat (concatenate) consente di leggere i contenuti di un file senza utilizzare un editor
apt-get update aggiorna la libreria del gestore di pacchetti . ping invia un segnale per testare la raggiungibilità di un host
mv (move ) sposta un file . cp (copy) crea la copia di un file
pwd (present working directory ) torna alla posizione corrente . sudo (super user do) concede privilegi amministrativi più elevati

Attività 1: abilita l'API Cloud Run e configura il tuo ambiente Shell

  1. Da Cloud Shell, abilita l'API Cloud Run:
gcloud services enable run.googleapis.com
  1. Se ti viene chiesto di autorizzare l'utilizzo delle tue credenziali, fallo. Dovresti quindi vedere un messaggio di operazione riuscita simile a questo:
Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully. Nota: puoi anche abilitare l'API utilizzando la sezione API e servizi della console.
  1. Imposta la regione di computing:
gcloud config set compute/region {{{project_0.default_region | "REGION"}}}
  1. Crea una variabile di ambiente LOCATION:
LOCATION="{{{project_0.default_region | Region}}}"

Attività 2: scrivi l'applicazione di esempio

In questa attività creerai una semplice applicazione NodeJS basata su Express che risponderà alle richieste HTTP.

  1. In Cloud Shell crea una nuova directory denominata helloworld, quindi sposta la visualizzazione in quella directory:
mkdir helloworld && cd helloworld
  1. Quindi creerai e modificherai i file. Per modificare i file, usa nano o l'editor di codice Cloud Shell facendo clic sul pulsante Apri editor in Cloud Shell.

  2. Crea un file package.json, e copia al suo interno il seguente codice:

nano package.json { "name": "helloworld", "description": "Simple hello world sample in Node", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js" }, "author": "Google LLC", "license": "Apache-2.0", "dependencies": { "express": "^4.17.1" } }

Molto importante: il file sopra contiene un comando di avvio di script e una dipendenza dal framework dell'applicazione web Express.

  1. Premi Ctrl+X, Y e poi Invio per salvare il file package.json.

  2. Quindi, nella stessa directory, crea un file index.js e copia al suo interno le seguenti righe:

nano index.js const express = require('express'); const app = express(); const port = process.env.PORT || 8080; app.get('/', (req, res) => { const name = process.env.NAME || 'World'; res.send(`Hello ${name}!`); }); app.listen(port, () => { console.log(`helloworld: listening on port ${port}`); });

Questo codice crea un server web di base in ascolto sulla porta definita dalla variabile di ambiente PORT. La tua app è ora completa e pronta per essere containerizzata e caricata in Artifact Registry.

  1. Premi Ctrl+X, Y e poi Invio per salvare il file index.js
Nota: puoi utilizzare molte altre lingue per iniziare a utilizzare Cloud Run. Le istruzioni per gli script Go, Python, Java, PHP, Ruby, Shell e altri sono disponibili nella pagina delle guide rapide.

Attività 3: recupera la tua app e caricala su Artifact Registry

  1. Per containerizzare l'app di esempio, crea un nuovo file denominato Dockerfile nella stessa directory dei file di origine e aggiungi il contenuto seguente:
nano Dockerfile # Use the official lightweight Node.js 12 image. # https://hub.docker.com/_/node FROM node:12-slim # Create and change to the app directory. WORKDIR /usr/src/app # Copy application dependency manifests to the container image. # A wildcard is used to ensure copying both package.json AND package-lock.json (when available). # Copying this first prevents re-running npm install on every code change. COPY package*.json ./ # Install production dependencies. # If you add a package-lock.json, speed your build by switching to 'npm ci'. # RUN npm ci --only=production RUN npm install --only=production # Copy local code to the container image. COPY . ./ # Run the web service on container startup. CMD [ "npm", "start" ]
  1. Premi CTRL+X, Y e poi Invio per salvare il file Dockerfile.

  2. Ora crea la tua immagine container utilizzando Cloud Build eseguendo il comando seguente dalla directory contenente il file Dockerfile (nota come la variabile di ambiente $GOOGLE_CLOUD_PROJECT nel comando, contiene l'ID progetto del lab):

gcloud builds submit --tag gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld

Cloud Build è un servizio che esegue le tue build su Google Cloud. Esegue una serie di passaggi di compilazione, ognuno eseguito in un container Docker per produrre il container dell'applicazione (o altri artefatti) ed eseguirne il push in Artifact Registry, tutto in un unico comando.

Una volta eseguito il push in Artifact Registry, vedrai una notifica di operazione riuscita contenente il nome dell'immagine (gcr.io/[PROJECT-ID]/helloworld). L'immagine è archiviata in Artifact Registry e, se lo desideri, può essere riutilizzata.

  1. Elenca tutte le immagini container associate al tuo progetto corrente usando questo comando:
gcloud container images list
  1. Registra gcloud come assistente per le credenziali per tutti i registry Docker supportati da Google:
gcloud auth configure-docker Nota: potrebbe esserti chiesto Vuoi continuare? (y/N)? Se sì, inserisci Y per accettare.
  1. Per eseguire e testare l'applicazione in locale da Cloud Shell, avviala utilizzando questo comando docker standard:
docker run -d -p 8080:8080 gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. Nella finestra Cloud Shell, fai clic su Anteprima web e seleziona Anteprima sulla porta 8080.

Dovrebbe aprirsi una finestra del browser con il messaggio "Hello World!". Puoi anche utilizzare semplicemente il comando curl localhost:8080.

Attività 4: esegui il deployment in Cloud Run

  1. Il deployment dell'applicazione containerizzata su Cloud Run viene eseguito utilizzando il comando seguente aggiungendo il tuo ID progetto:
gcloud run deploy --image gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld --allow-unauthenticated --region=$LOCATION

Il flag allow-unauthenticated nel comando sopra rende il tuo servizio pubblicamente accessibile.

  1. Quando viene richiesto, conferma il service name premendo Invio.
Nota: potrebbe esserti chiesto Vuoi abilitare queste API per continuare (l'operazione richiederà alcuni minuti)? (y/N)? Se sì, inserisci Y per abilitare l'API necessaria.

Attendi qualche istante fino al completamento del deployment.

Se l'operazione riesce, la riga di comando visualizza l'URL del servizio:

Service [helloworld] revision [helloworld-00001-xit] has been deployed and is serving 100 percent of traffic. Service URL: https://helloworld-h6cp412q3a-uc.a.run.app

Ora puoi visitare il container di cui hai eseguito il deployment aprendo l'URL del servizio in qualsiasi finestra del browser.

Complimenti! Hai eseguito il deployment di un'applicazione pacchettizzata in un'immagine container su Cloud Run. Cloud Run scala automaticamente e orizzontalmente l'immagine container per gestire le richieste ricevute, quindi fa lo scale down quando la domanda diminuisce. Nel tuo ambiente, paghi solo per la CPU, la memoria e le risorse di rete utilizzate durante la gestione delle richieste.

Per questo lab hai utilizzato la riga di comando gcloud. Cloud Run è disponibile anche tramite la console Cloud.

  • Dal menu di navigazione, nella sezione Serverless, fai clic su Cloud Run e vedrai il tuo servizio helloworld in elenco:

Scheda Cloud Run che mostra il servizio helloworld

Attività 5: esegui la pulizia

Sebbene non siano previsti addebiti per Cloud Run quando il servizio non è in uso, ti potrebbero comunque essere addebitati i costi di archiviazione dell'immagine container creata.

  1. Puoi decidere di eliminare il tuo progetto Google Cloud per evitare addebiti, interrompendo così la fatturazione per tutte le risorse utilizzate all'interno di quel progetto, o semplicemente eliminare la tua immagine helloworld utilizzando questo comando:
gcloud container images delete gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. Quando ti viene chiesto di continuare, digita Y e premi Invio.

  2. Per eliminare il servizio Cloud Run, utilizza questo comando:

gcloud run services delete helloworld --region={{{project_0.default_region | "REGION"}}}
  1. Quando ti viene chiesto di continuare, digita Y e premi Invio.

Termina il lab

Una volta completato il lab, fai clic su Termina lab. Google Cloud Skills Boost rimuove le risorse che hai utilizzato ed esegue la pulizia dell'account.

Avrai la possibilità di inserire una valutazione in merito alla tua esperienza. Seleziona il numero di stelle applicabile, inserisci un commento, quindi fai clic su Invia.

Il numero di stelle corrisponde alle seguenti valutazioni:

  • 1 stella = molto insoddisfatto
  • 2 stelle = insoddisfatto
  • 3 stelle = esperienza neutra
  • 4 stelle = soddisfatto
  • 5 stelle = molto soddisfatto

Se non vuoi lasciare un feedback, chiudi la finestra di dialogo.

Per feedback, suggerimenti o correzioni, utilizza la scheda Assistenza.

Complimenti!

Hai completato il lab.

Passaggi successivi/Scopri di più

Per saperne di più sulla creazione di un container HTTP stateless adatto per Cloud Run dall'origine del codice e su come eseguirne il push in Artifact Registry, vai alla pagina:

Copyright 2020 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.

Questi contenuti non sono al momento disponibili

Ti invieremo una notifica via email quando sarà disponibile

Bene.

Ti contatteremo via email non appena sarà disponibile