1. Panoramica
Con Cloud Functions puoi scrivere funzioni semplici a uso specifico che vengono collegate agli eventi generati dall'infrastruttura e dai servizi cloud. La funzione Cloud Functions viene attivata quando viene attivato un evento controllato. Il codice viene eseguito in un ambiente completamente gestito. Non è necessario eseguire il provisioning di un'infrastruttura né preoccuparsi di gestire un server.
Le funzioni Cloud Functions attualmente possono essere scritte in JavaScript, Python o Go. Nel caso di JavaScript, vengono eseguite in un ambiente Node.js su Google Cloud. Una funzione Cloud Functions può essere eseguita in qualsiasi runtime di Node.js standard, così sia la portabilità che l'esecuzione di test in locale sono estremamente semplici.
Connetti ed estendi i servizi cloud
Cloud Functions offre un livello di connettività logica che consente di scrivere codice per connettere ed estendere i servizi cloud. Puoi ascoltare e rispondere a un caricamento di file in Cloud Storage, a una modifica del log o a un messaggio in arrivo per un argomento di Cloud Pub/Sub. Cloud Functions potenzia i servizi cloud esistenti e consente di gestire un numero sempre maggiore di casi d'uso con qualsiasi logica di programmazione. Le funzioni Cloud hanno accesso alle credenziali dell'account di servizio Google e vengono quindi autenticate senza problemi dalla maggior parte dei servizi Google Cloud Platform, ad esempio Datastore, Cloud Spanner, API Cloud Translation, API Cloud Vision e molti altri.
Eventi e trigger
Gli eventi cloud sono eventi che si verificano nel tuo ambiente cloud, ad esempio modifiche ai dati di un database, file aggiunti a un sistema di archiviazione o una nuova istanza di macchina virtuale in fase di creazione.
Gli eventi si verificano indipendentemente dal fatto che tu scelga o meno di rispondere. Puoi creare una risposta a un evento con un trigger. Con il trigger dichiari di essere interessato a un determinato evento o a una serie di eventi. L'associazione di una funzione a un trigger ti permette di acquisire gli eventi e di intervenire in relazione agli stessi. Per saperne di più sulla creazione dei trigger e su come associarli alle funzioni, vedi Eventi e trigger.
Serverless
Cloud Functions elimina il lavoro di gestione dei server, configurazione del software, aggiornamento dei framework e applicazione di patch ai sistemi operativi. Il software e l'infrastruttura sono completamente gestiti da Google, quindi devi solo aggiungere il codice. Inoltre, il provisioning delle risorse avviene automaticamente in risposta agli eventi. Questo significa che una funzione può passare da alcune chiamate al giorno a diversi milioni di chiamate senza alcun intervento da parte tua.
Casi d'uso
I carichi di lavoro asincroni, ad esempio ETL leggero o automazioni cloud, come l'attivazione di build di applicazioni, adesso non hanno più bisogno di un proprio server e di uno sviluppatore che lo colleghi: ti basta eseguire il deployment di una funzione Cloud Functions associata all'evento.
Grazie alla sua natura granulare e on demand, Cloud Functions è anche il candidato perfetto per le API e i webhook leggeri. Inoltre, poiché viene eseguito automaticamente il provisioning degli endpoint HTTP quando si esegue il deployment di una funzione HTTP, non è necessaria alcuna configurazione complessa come nel caso di alcuni altri servizi.
Questo lab pratico spiega come creare, eseguire il deployment e testare una funzione Cloud Functions utilizzando la console Google Cloud. Dovrai :
- Creare una funzione Cloud Functions
- Eseguire il deployment della funzione e testarla
- Visualizza i log
2. Configurazione e requisiti
Configurazione dell'ambiente da seguire in modo autonomo
- Accedi alla console Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai ancora un account Gmail o G Suite, devi crearne uno.
Ricorda l'ID progetto, un nome univoco in tutti i progetti Google Cloud (il nome precedente è già stato utilizzato e non funzionerà correttamente). Verrà indicato più avanti in questo codelab come PROJECT_ID
.
- Successivamente, dovrai abilitare la fatturazione in Cloud Console per utilizzare le risorse Google Cloud.
Eseguire questo codelab non dovrebbe costare molto. Assicurati di seguire le istruzioni nella sezione "Pulizia" in cui viene spiegato come arrestare le risorse in modo da non incorrere in fatturazione oltre questo tutorial. I nuovi utenti di Google Cloud sono idonei al programma prova senza costi di 300$.
Google Cloud Shell
Mentre Google Cloud e Cloud Functions possono essere gestiti da remoto dal tuo laptop, in questo codelab utilizzeremo Google Cloud Shell, un ambiente a riga di comando in esecuzione nel Cloud.
Questa macchina virtuale basata su Debian viene caricata con tutti gli strumenti di sviluppo necessari. Offre una home directory permanente da 5 GB e viene eseguita in Google Cloud, migliorando notevolmente le prestazioni di rete e l'autenticazione. Ciò significa che per questo codelab è sufficiente un browser (sì, funziona su Chromebook).
- Per attivare Cloud Shell dalla console Cloud, fai semplicemente clic su Attiva Cloud Shell (il provisioning e la connessione all'ambiente dovrebbero richiedere solo pochi minuti).
Dopo la connessione a Cloud Shell, dovresti vedere che hai già eseguito l'autenticazione e che il progetto è già impostato su PROJECT_ID
.
gcloud auth list
Output comando
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Output comando
[core] project = <PROJECT_ID>
Se, per qualche motivo, il progetto non è impostato, invia semplicemente il seguente comando:
gcloud config set project <PROJECT_ID>
Stai cercando il tuo PROJECT_ID
? Controlla l'ID utilizzato nei passaggi di configurazione o cercalo nella dashboard della console Cloud:
Cloud Shell imposta anche alcune variabili di ambiente per impostazione predefinita, cosa che può essere utile quando eseguirai comandi futuri.
echo $GOOGLE_CLOUD_PROJECT
Output comando
<PROJECT_ID>
- Infine, imposta la zona e la configurazione del progetto predefinite.
gcloud config set compute/zone us-central1-f
Puoi scegliere zone diverse. Per ulteriori informazioni, consulta Regioni e Zone.
3. Crea una funzione
In questo passaggio, creerai una Funzione Cloud utilizzando la console.
- Nella console, fai clic sul menu di navigazione > di Cloud Functions.
- Fai clic su "CREA FUNZIONE"
- Assegna alla funzione il nome
GCFunction
e mantieni gli altri valori predefiniti : allocazione della memoria, HTTP come trigger, editor in linea, runtime predefinito e codice campione predefinito.
- Rimani nella "funzione di creazione" finestra di dialogo, in basso, fai clic su "Crea" eseguire il deployment della funzione:
Dopo aver fatto clic su Crea, la console ti reindirizza alla pagina Panoramica di Cloud Functions.
Durante l'esecuzione del deployment, accanto alla funzione viene visualizzata un'icona a forma di rotellina. Al termine del deployment, al posto della rotellina sarà presente un segno di spunta verde. In caso di problemi, riceverai una notifica con un'icona rossa e un link ai log per capire cosa non ha funzionato (probabilmente un problema nel codice).
È tutto. La funzione è ora attiva e pronta per essere attivata tramite HTTP.
4. testa la funzione
Nella pagina Panoramica di Cloud Functions, visualizza il menu della funzione e fai clic su Esegui test funzione :
Nel campo Evento di trigger, inserisci il seguente testo tra le parentesi {} e fai clic su Esegui il test della funzione.
Nel campo Output, dovrebbe essere visualizzato il messaggio Operazione riuscita: Hello World!
Nel campo Log, il codice di stato 200 indica che l'operazione è riuscita. Tieni presente che la visualizzazione dei log potrebbe richiedere un minuto.
5. visualizza i log delle funzioni
Fai clic sulla freccia blu per tornare alla pagina Panoramica di Cloud Functions :
Visualizza il menu della funzione e fai clic su Visualizza log :
Ecco un esempio della cronologia dei log :
Tieni presente che puoi filtrare i log in base alla funzione, in base alla gravità e alla ricerca tramite un'etichetta o testo in formato libero.
Il deployment dell'applicazione è stato eseguito, l'applicazione è stata testata e hai potuto visualizzare i log.
6. Esegui la pulizia delle risorse
Beh, non c'è bisogno di pulire le risorse poiché si tratta di serverless computing : scalare a zero significa anche scalare i costi fino a zero. Pertanto, se la funzione non riceve traffico, non sarà previsto alcun costo. Inoltre, i primi 2 milioni di chiamate di funzione Cloud Functions ogni mese sono senza costi. Per ulteriori dettagli, consulta la pagina relativa ai prezzi.
Se desideri eliminare la funzione, vai alla pagina Panoramica, seleziona la funzione e fai clic su ELIMINA :
7. Passaggi successivi
Cloud Functions ha molto di più in serbo per te. Dai un'occhiata ad altri codelab, alla pagina del prodotto e alla relativa documentazione.
Dovresti anche consultare le seguenti risorse :
- Chiamata a Cloud Functions (trigger disponibili per la chiamata di una funzione)
- Monitoraggio di Cloud Functions (log, segnalazione degli errori e altro)
- ... o più codelab della categoria serverless