Pianifica ed esegui un cron job utilizzando gcloud CLI

Questa guida rapida mostra come utilizzare gcloud CLI per eseguire alcune operazioni di base utilizzando Cloud Scheduler.

In questa guida rapida:

  1. Crea un argomento Pub/Sub da configurare come target del job Cloud Scheduler.
  2. Crea un cron job utilizzando Cloud Scheduler e configura una pianificazione ricorrente per il job.
  3. Esegui il job.
  4. Verificare che il job sia stato eseguito correttamente.

Cloud Scheduler ha un Livello senza costi e l'esecuzione di questa guida rapida non dovrebbe comportare costi. Per ulteriori informazioni, vedi Prezzi.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . 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.
  2. Installa Google Cloud CLI.

  3. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. Crea o seleziona un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per cui ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere ruoli.
    • Crea un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del progetto Google Cloud .

  6. Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.

  7. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  8. Abilita le API Cloud Scheduler e Pub/Sub, se non sono già abilitate:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di 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.

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  9. Installa Google Cloud CLI.

  10. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  11. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  12. Crea o seleziona un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per cui ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere ruoli.
    • Crea un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del progetto Google Cloud .

  13. Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.

  14. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  15. Abilita le API Cloud Scheduler e Pub/Sub, se non sono già abilitate:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di 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.

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per completare questa guida rapida, chiedi all'amministratore di concederti i seguenti ruoli IAM nel tuo progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Crea un argomento e una sottoscrizione Pub/Sub

Un argomento Pub/Sub è una risorsa a cui i publisher possono inviare messaggi. Per ricevere i messaggi pubblicati in un argomento, devi creare una sottoscrizione all'argomento.

  1. Configura un argomento Pub/Sub da utilizzare come target per il tuo cron job:

    gcloud pubsub topics create cron-topic
    

    Viene creato un argomento denominato cron-topic.

  2. Per ricevere i messaggi e visualizzare i risultati del job, crea una sottoscrizione Pub/Sub:

    gcloud pubsub subscriptions create cron-sub --topic cron-topic
    

Crea un cron job con Cloud Scheduler

Utilizza il comando gcloud scheduler jobs create pubsub per configurare un'unità di lavoro nota come cron job che viene inviata a una destinazione Pub/Sub in base a una pianificazione ricorrente. La pianificazione viene specificata utilizzando un formato basato su unix-cron. Per saperne di più, consulta Formato e fuso orario del cron job.

gcloud scheduler jobs create pubsub my-cron-job \
    --schedule="30 16 * * 7" \
    --topic=cron-topic \
    --location="us-east1" \
    --message-body="Hello world"

Hai creato un job che invia un messaggio "Hello World" al tuo argomento Pub/Sub alle 16:30 di domenica.

Ora puoi eseguire il job.

Esegui il job

Oltre a eseguire il job in base alla pianificazione specificata, puoi forzarne l'esecuzione immediata:

gcloud scheduler jobs run my-cron-job --location="us-east1"

Tieni presente che, a causa della configurazione iniziale, l'esecuzione del primo job creato in un progetto può richiedere alcuni minuti.

Successivamente, puoi verificare che l'argomento Pub/Sub abbia ricevuto il messaggio.

Verifica i risultati in Pub/Sub

Verifica che l'argomento Pub/Sub riceva messaggi dal job.

  1. Esegui il pull dei messaggi Pub/Sub da una sottoscrizione:

    gcloud pubsub subscriptions pull cron-sub --limit 5
    

    Se inizialmente non vengono estratti messaggi, esegui di nuovo il comando.

  2. Visualizza i risultati dell'esecuzione del job. L'output dovrebbe essere simile al seguente:

    DATA: Hello world!
    MESSAGE_ID: 5028933846601543
    ORDERING_KEY:
    ATTRIBUTES:
    DELIVERY_ATTEMPT:
    ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]
    

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il progetto Google Cloud con le risorse.

    Elimina un progetto Google Cloud :

    gcloud projects delete PROJECT_ID

In alternativa, elimina le risorse che hai creato per questa guida rapida:

  1. Elimina il cron job. In Cloud Shell o sulla macchina in cui hai installato gcloud CLI, esegui il comando:

    gcloud scheduler jobs delete MY_JOB \
        --location="LOCATION"
    

    Sostituisci quanto segue:

    • MY_JOB: il nome del job da eliminare.
    • LOCATION: la sede di lavoro. Per impostazione predefinita, utilizza la posizione dell'app App Engine del progetto corrente se esiste un'app associata.
  2. Elimina l'argomento Pub/Sub. In Cloud Shell o sulla macchina in cui hai installato gcloud CLI, esegui il comando:

    gcloud pubsub topics delete TOPIC_ID
    

    Sostituisci TOPIC_ID con l'ID dell'argomento Pub/Sub da eliminare.

  3. Elimina la sottoscrizione Pub/Sub. In Cloud Shell o sulla macchina in cui hai installato gcloud CLI, esegui il comando:

    gcloud pubsub subscriptions delete SUBSCRIPTION_ID
    

    Sostituisci SUBSCRIPTION_ID con l'ID della sottoscrizione Pub/Sub da eliminare.

Passaggi successivi