Pianifica una Cloud Function

Questo tutorial mostra come attivare una funzione Cloud Functions utilizzando Cloud Scheduler e Pub/Sub. La possibilità di pianificare l'esecuzione di una Cloud Function è un caso d'uso comune per Cloud Scheduler. Imparerai a:

  • Creare una Cloud Function semplice che sottoscrive un argomento Pub/Sub.
  • Creare un job Cloud Scheduler che pubblica un messaggio nell'argomento Pub/Sub.
  • Eseguire il job Cloud Scheduler.
  • Verifica che la Cloud Function sia stata attivata dal job Cloud Scheduler.

Prima di iniziare

Questo tutorial presuppone che tu abbia già utilizzato la guida rapida di Cloud Scheduler. Di conseguenza, hai a disposizione i seguenti strumenti e risorse:

  • Un progetto Google Cloud con fatturazione abilitata.

  • L'API Cloud Scheduler e l'API Pub/Sub sono entrambe abilitate nel progetto. Potrai abilitare l'API Cloud Functions durante il tutorial.

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

  • Cloud Functions
  • Pub/Sub
  • Cloud Scheduler

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud possono essere idonei a una prova senza costi aggiuntivi.

crea una Cloud Function con un trigger

  1. Nella console Google Cloud, vai alla pagina Cloud Functions.

    Vai a Cloud Functions

  2. Fai clic su Abilita API se richiesto.

  3. Fai clic su Crea funzione. Se viene visualizzato un messaggio che richiede di abilitare le API, fai clic su Abilita per attivarle.

  4. Nella sezione Impostazioni di base, seleziona l'ambiente di 2a generazione, inserisci un nome per la funzione e seleziona una regione.

  5. Nella sezione Trigger, in Tipo di trigger, seleziona Cloud Pub/Sub e fai clic su Altre opzioni. Si apre il riquadro Trigger Eventarc. Se viene visualizzato il messaggio Abilita le API richieste, fai clic su Abilita.

  6. Nel riquadro Trigger Eventarc, assicurati che i primi campi siano compilati come segue oppure, se necessario:

    • Tipo di attivatore: origini Google
    • Provider di eventi:Cloud Pub/Sub
    • Evento: google.cloud.pubsub.topic.v1.messagePublished
  7. Nel campo Seleziona un argomento Cloud Pub/Sub, seleziona un argomento esistente o fai clic su Crea un argomento per crearne uno nuovo. La funzione sottoscrive questo argomento. Prendi nota del nome dell'argomento: ti servirà in seguito.

    • Se richiesto, fai clic su Concedi per consentire al servizio Pub/Sub di creare i token di identità necessari per richiamare la funzione.
  8. Nel campo Account di servizio, fai clic su Crea nuovo account di servizio.

    1. Inserisci un nome per l'account di servizio e fai clic su Crea. Eventarc utilizza questo account di servizio per richiamare la funzione con un token di identità dal servizio Pub/Sub.

    2. Nella sezione Concedi a questo account di servizio l'accesso al progetto, seleziona il ruolo Invoker di Cloud Run. Ciò concede all'account di servizio la possibilità di richiamare la funzione di seconda generazione.

    3. Fai clic su Fine.

  9. Lascia deselezionata l'opzione Riprova in caso di errore. Fai clic su Salva trigger.

  10. Espandi la sezione Impostazioni di runtime, build, connessioni e sicurezza e seleziona la scheda Runtime.

  11. In Account di servizio di runtime, nel campo Account di servizio, fai clic su Crea. Il flusso di creazione dell'account di servizio si apre in una nuova scheda. Questo account di servizio è l'identità della Cloud Function quando viene eseguita.

    1. Inserisci un nome per l'account di servizio.
    2. Fai clic su Crea e continua.
    3. Fai clic su Fine.

    Verrà visualizzata la pagina Account di servizio della console Google Cloud. Puoi chiudere questa scheda.

  12. Torna al campo Account di servizio nella pagina di creazione della funzione, fai clic su Aggiorna e seleziona l'account di servizio appena creato.

  13. Tocca Avanti. Se ti viene richiesto di abilitare le API richieste, fai clic su Abilita.

  14. Non modificare la lingua predefinita e codice campione. Il codice non utilizza servizi cloud e non richiede l'abilitazione di autorizzazioni aggiuntive. Fai clic su Esegui il deployment.

Crea un job Cloud Scheduler

  1. Nella console Google Cloud, vai alla pagina Cloud Scheduler.

    Vai a Cloud Scheduler

  2. Fai clic su Crea job.

  3. Inserisci un nome per il job, seleziona una regione in cui eseguire il job e, facoltativamente, aggiungi una descrizione.

  4. Specifica la frequenza del job utilizzando il formato unix-cron.

    30 16 * * 7
    

    Per ulteriori informazioni, consulta Configurare le pianificazioni dei cron job.

  5. Seleziona il tuo fuso orario.

  6. Fai clic su Continua.

  7. Nella sezione Configura l'esecuzione, seleziona Pub/Sub come tipo di destinazione.

  8. Seleziona l'argomento Pub/Sub.

  9. Aggiungi una breve stringa Message da inviare al target.

  10. Fai clic su Crea.

Ora hai un cron job che invia un messaggio al tuo argomento Pub/Sub alle 16:30 di domenica. La funzione Cloud Functions è iscritta a quell'argomento.

Esegui il job

Ora puoi eseguire il job che hai creato.

  1. Nella console Google Cloud, vai alla pagina Cloud Scheduler.

    Vai a Cloud Scheduler

  2. Seleziona il job che hai creato.

  3. Fai clic su Forza esecuzione.

    A causa della configurazione richiesta, l'esecuzione del primo job creato in un progetto può richiedere alcuni minuti la prima volta che viene richiamato.

  4. Osserva la colonna Stato dell'ultima esecuzione. Al termine dell'esecuzione del job, nella colonna dovrebbe essere visualizzato il messaggio "Operazione riuscita".

Complimenti! Hai appena utilizzato la console per vedere i risultati dell'esecuzione di un cron job che invia un messaggio a Pub/Sub. Ora imparerai come verificare che la Cloud Function sia stata effettivamente eseguita.

Verifica i risultati in Cloud Functions

Per verificare che la Cloud Function sia stata attivata correttamente dal cron job:

  1. Nella console Google Cloud, vai alla pagina Cloud Functions.

    Vai a Cloud Functions

  2. Fai clic sul nome della funzione.

  3. Si apre la pagina Dettagli funzione. Il grafico Chiamate/secondo mostra la prima chiamata della funzione. Per visualizzare i dettagli della chiamata, fai clic su Log.

Complimenti! La funzione è stata eseguita.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial:

Elimina il job Cloud Scheduler

  1. Nella console Google Cloud, vai alla pagina Cloud Scheduler.

    Vai a Scheduler

  2. Seleziona la casella di controllo accanto al job.

  3. Fai clic su Elimina e conferma l'eliminazione.

Elimina l'argomento Pub/Sub

  1. Nella console Google Cloud, vai alla pagina Cloud Pub/Sub.

    Vai a Pub/Sub

  2. Seleziona la casella di controllo accanto all'argomento.

  3. Fai clic su Elimina e conferma l'eliminazione.

Elimina la Cloud Function

  1. Nella console Google Cloud, vai alla pagina Cloud Functions.

    Vai a Cloud Functions

  2. Seleziona la casella di controllo accanto alla funzione.

  3. Fai clic su Elimina e conferma l'eliminazione.

Elimina gli account di servizio

  1. Nella console Google Cloud, vai alla pagina Account di servizio.

    Vai ad Account di servizio

  2. Seleziona la casella di controllo accanto agli account di servizio che hai creato.

  3. Fai clic su Elimina e conferma l'eliminazione.

Disabilita le API

Se hai abilitato delle API nel corso di questo tutorial (ad esempio le API Eventarc, Cloud Functions o Pub/Sub), disabilitale. La disabilitazione delle API influisce sull'accesso all'API per il progetto, quindi non disabilitare le API se altre risorse del progetto le utilizzano.

  1. Nella console Google Cloud, vai alla pagina API e servizi.

    Vai ad API e servizi

  2. Fai clic sull'API che vuoi disabilitare. Viene visualizzata una pagina che descrive l'API.

  3. Fai clic su Disabilita API.

Elimina il progetto

Se hai creato un progetto solo per questo tutorial, puoi eliminarlo.

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.