GSP080

Panoramica
Una funzione Cloud Run è una porzione di codice eseguita in risposta a un evento, come una richiesta HTTP, un messaggio da un servizio di messaggistica o il caricamento di un file. Gli eventi cloud rappresentano le cose che accadono nel tuo ambiente cloud. Possono essere modifiche ai dati di un database, file aggiunti a un sistema di archiviazione o una nuova istanza di macchina virtuale in fase di creazione.
Dato che Cloud Run Functions è basato su eventi, viene eseguito solo quando accade qualcosa. Questo lo rende adatto ad attività che devono essere eseguite rapidamente o che non devono essere sempre in esecuzione.
Ad esempio, puoi utilizzare una funzione Cloud Run per:
- Generare automaticamente miniature per le immagini caricate su Cloud Storage.
- Inviare una notifica allo smartphone di un utente quando viene ricevuto un nuovo messaggio in Pub/Sub.
- Elaborare i dati da un database Cloud Firestore e generare un report.
Puoi scrivere il tuo codice in qualsiasi linguaggio che supporti Node.js ed eseguire il deployment del codice nel cloud con pochi clic. Dopo il deployment, la funzione Cloud Run verrà eseguita automaticamente in risposta agli eventi.
Questo lab pratico spiega come creare, eseguire il deployment e testare una funzione Cloud Run utilizzando la console Google Cloud.
Questo lab pratico spiega come creare, eseguire il deployment e testare una funzione Cloud Run utilizzando la riga di comando di Google Cloud Shell.
In questo lab proverai a:
- Creare una funzione Cloud Run
- Eseguire il deployment e testare la funzione Cloud Run
- Visualizzare i log
Configurazione
Prima di fare clic sul pulsante Avvia lab
Leggi le seguenti istruzioni. I lab sono a tempo e non possono essere messi in pausa. Il timer si avvia quando fai clic su Inizia il lab e ti mostra per quanto tempo avrai a disposizione le risorse Google Cloud.
Con questo lab pratico avrai la possibilità di completare le attività in un ambiente cloud reale e non di simulazione o demo. Riceverai delle nuove credenziali temporanee che potrai utilizzare per accedere a Google Cloud per la durata del lab.
Per completare il lab, avrai bisogno di:
- Accesso a un browser internet standard (Chrome è il browser consigliato).
Nota: per eseguire questo lab, utilizza una finestra del browser in modalità di navigazione in incognito (consigliata) o privata. Ciò evita conflitti tra il tuo account personale e l'account studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.
- È ora di completare il lab: ricorda che, una volta iniziato, non puoi metterlo in pausa.
Nota: utilizza solo l'account studente per questo lab. Se utilizzi un altro account Google Cloud, potrebbero essere addebitati costi su quell'account.
Come avviare il lab e accedere alla console Google Cloud
-
Fai clic sul pulsante Avvia lab. Se devi effettuare il pagamento per il lab, si aprirà una finestra di dialogo per permetterti di selezionare il metodo di pagamento.
A sinistra, trovi il riquadro Dettagli lab con le seguenti informazioni:
- Il pulsante Apri la console Google Cloud
- Tempo rimanente
- Credenziali temporanee da utilizzare per il lab
- Altre informazioni per seguire questo lab, se necessario
-
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.
-
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.
-
Fai clic su Avanti.
-
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.
-
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.
-
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 accedere ai prodotti e ai servizi Google Cloud, fai clic sul menu di navigazione o digita il nome del servizio o del prodotto nel campo Cerca.
Attiva Cloud Shell
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. Cloud Shell fornisce l'accesso da riga di comando alle risorse Google Cloud.
-
Fai clic su Attiva Cloud Shell
nella parte superiore della console Google Cloud.
-
Fai clic nelle seguenti finestre:
- Continua nella finestra delle informazioni di Cloud Shell.
- Autorizza Cloud Shell a utilizzare le tue credenziali per effettuare chiamate API Google Cloud.
Quando la connessione è attiva, l'autenticazione è già avvenuta e il progetto è impostato sul tuo Project_ID, . L'output contiene una riga che dichiara il Project_ID per questa sessione:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento tramite tasto Tab.
- (Facoltativo) Puoi visualizzare il nome dell'account attivo con questo comando:
gcloud auth list
- Fai clic su Autorizza.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facoltativo) Puoi elencare l'ID progetto con questo comando:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Nota: per la documentazione completa di gcloud
, in Google Cloud, fai riferimento alla guida Panoramica dell'interfaccia a riga di comando gcloud.
Attività 1: crea una funzione
Per prima cosa, devi creare una funzione semplice denominata helloWorld
. Questa funzione scrive un messaggio nei log di Cloud Run Functions. Viene attivata da eventi di Cloud Run Functions e accetta una funzione di callback utilizzata per indicare il completamento della funzione.
Per questo lab, l'evento di Cloud Run Functions è un evento di un argomento Pub/Sub. Pub/Sub è un servizio di messaggistica in cui i mittenti dei messaggi vengono disaccoppiati dai destinatari dei messaggi. Quando un messaggio viene inviato o pubblicato, il destinatario deve disporre di una sottoscrizione per ricevere un avviso e il messaggio. Per saperne di più sui messaggi Pub/Sub, vedi Pub/Sub: un servizio di messaggistica su scala Google nelle guide su Pub/Sub.
Per saperne di più sul parametro evento e sul parametro callback, vedi Funzioni in background nella documentazione di Cloud Run Functions.
Per creare una funzione Cloud Run:
-
Per impostare la regione predefinita, esegui questo comando in Cloud Shell:
gcloud config set run/region {{{project_0.default_region |REGION}}}
-
Crea una directory per il codice della funzione:
mkdir gcf_hello_world && cd $_
-
Crea e apri il file index.js
per effettuare la modifica:
nano index.js
-
Copia quanto segue nel file index.js
:
const functions = require('@google-cloud/functions-framework');
// Register a CloudEvent callback with the Functions Framework that will
// be executed when the Pub/Sub trigger topic receives a message.
functions.cloudEvent('helloPubSub', cloudEvent => {
// The Pub/Sub message is passed as the CloudEvent's data payload.
const base64name = cloudEvent.data.message.data;
const name = base64name
? Buffer.from(base64name, 'base64').toString()
: 'World';
console.log(`Hello, ${name}!`);
});
-
Esci da nano (Ctrl+X) e salva (Y) il file.
-
Crea e apri il file package.json
per effettuare la modifica:
-
Copia quanto segue nel file package.json
:
{
"name": "gcf_hello_world",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0"
}
}
-
Esci da nano (Ctrl+X) e salva (Y) il file.
-
Installa le dipendenze del pacchetto
npm install
Output previsto:
added 140 packages, and audited 141 packages in 9s
27 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
Attività 2: esegui il deployment della funzione
Per questo lab, imposterai --trigger-topic
come cf_demo
.
Nota:
Cloud Run Functions è basato su eventi, il che significa che è necessario specificare un tipo di trigger.
Quando esegui il deployment di una nuova funzione, "--trigger-topic", "--trigger-bucket" o "--trigger-http" sono eventi di trigger comuni.
Quando viene eseguito il deployment di un aggiornamento a una funzione esistente, la funzione conserva il trigger esistente se non diversamente specificato.
-
Esegui il deployment della funzione nodejs-pubsub-function in un argomento Pub/Sub denominato cf-demo
gcloud functions deploy nodejs-pubsub-function \
--gen2 \
--runtime=nodejs20 \
--region={{{ project_0.default_region | REGION }}} \
--source=. \
--entry-point=helloPubSub \
--trigger-topic cf-demo \
--stage-bucket {{{ project_0.project_id | PROJECT_ID }}}-bucket \
--service-account cloudfunctionsa@{{{ project_0.project_id | PROJECT_ID }}}.iam.gserviceaccount.com \
--allow-unauthenticated
Note:
If you get a service account serviceAccountTokenCreator notification select "n".
-
Verifica lo stato della funzione:
gcloud functions describe nodejs-pubsub-function \
--region={{{ project_0.default_region | REGION }}}
Lo stato ACTIVE indica che è stato eseguito il deployment della funzione.
Output previsto:
BuildConfig:
automaticUpdatePolicy: {}
build: projects/630521560493/locations/{{{ project_0.default_region | REGION }}}/builds/7ff9d415-50d9-4557-9bcd-5afad42a6390
dockerRegistry: ARTIFACT_REGISTRY
dockerRepository: projects/{{{ project_0.project_id | PROJECT_ID }}}/locations/{{{ project_0.default_region | REGION }}}/repositories/gcf-artifacts
entryPoint: helloPubSub
...
State: ACTIVE
...
UpdateTime: '2024-08-05T13:51:05.317298824Z'
Url: https://{{{ project_0.default_region | REGION }}}-{{{ project_0.project_id | PROJECT_ID }}}.cloudfunctions.net/nodejs-pubsub-function
Ogni messaggio pubblicato nell'argomento attiva l'esecuzione della funzione; i contenuti dei messaggi vengono passati come dati di input.
Verifica l'attività completata
Fai clic su Controlla i miei progressi per verificare l'attività eseguita.
Se hai completato correttamente l'attività, riceverai un punteggio di valutazione.
Esegui il deployment della funzione.
Attività 3: testa la funzione
Dopo aver eseguito il deployment della funzione e aver verificato che è attiva, fai un test per assicurarti che la funzione scriva un messaggio nel log cloud dopo aver rilevato un evento.
-
Richiama Pub/Sub con alcuni dati.
gcloud pubsub topics publish cf-demo --message="Cloud Function Gen2"
Output di esempio:
messageIds:
- '11927162971409664'
Visualizza i log per verificare che esistono messaggi di log con quell'ID esecuzione.
Attività 4: visualizza i log
-
Controlla i log per visualizzare i messaggi nella cronologia dei log:
gcloud functions logs read nodejs-pubsub-function \
--region={{{ project_0.default_region | REGION }}}
Nota:
I log possono impiegare circa 10 minuti per essere visualizzati.
In alternativa, puoi visualizzare i log su Logging > Esplora log.
La funzione Cloud Run restituirà informazioni simili alle seguenti:
LEVEL:
NAME: nodejs-pubsub-function
EXECUTION_ID: h4v6akxf4sxt
TIME_UTC: 2024-08-05 15:15:25.723
LOG: Hello, Cloud Function Gen2!
LEVEL: I
NAME: nodejs-pubsub-function
EXECUTION_ID:
TIME_UTC: 2024-08-05 15:15:25.711
LOG:
LEVEL:
NAME: nodejs-pubsub-function
EXECUTION_ID: h4oxfjn7zlyu
TIME_UTC: 2024-08-05 15:10:34.303
LOG: Hello, Friend!
LEVEL: I
NAME: nodejs-pubsub-function
EXECUTION_ID:
TIME_UTC: 2024-08-05 15:10:34.291
LOG:
LEVEL:
NAME: nodejs-pubsub-function
EXECUTION_ID: h4fjhyfxua3k
TIME_UTC: 2024-08-05 15:03:16.342
LOG: Hello, "SGVsbG8gZnJvbSB0aGUgY29tbWFuZCBsaW5l"!
Il deployment dell'applicazione è stato eseguito, l'applicazione è stata testata e puoi visualizzare i log.
Attività 5: verifica le tue conoscenze
-
Di seguito, sono riportate alcune domande a scelta multipla che servono a consolidare la tua conoscenza dei concetti di questo lab. Rispondi alle domande al meglio delle tue capacità.
Complimenti!
Hai utilizzato la console Google Cloud per creare, eseguire il deployment e testare una funzione Cloud Run utilizzando la riga di comando.
Segui il prossimo lab
Questo lab fa parte di una serie chiamata Qwik Starts, pensata per offrirti un piccolo assaggio delle diverse funzionalità disponibili in Google Cloud. Cerca "Qwik Starts" nel catalogo dei lab per trovare il prossimo lab da seguire.
Passaggi successivi/Scopri di più
Formazione e certificazione Google Cloud
… per utilizzare al meglio le tecnologie Google Cloud. I nostri corsi ti consentono di sviluppare competenze tecniche e best practice per aiutarti a metterti subito al passo e avanzare nel tuo percorso di apprendimento. Offriamo vari livelli di formazione, dal livello base a quello avanzato, con opzioni di corsi on demand, dal vivo e virtuali, in modo da poter scegliere il più adatto in base ai tuoi impegni. Le certificazioni ti permettono di confermare e dimostrare le tue abilità e competenze relative alle tecnologie Google Cloud.
Ultimo aggiornamento del manuale: 20 gennaio 2025
Ultimo test del lab: 20 gennaio 2025
Copyright 2025 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.