Questa pagina mostra come utilizzare Cloud Scheduler per eseguire un flusso di lavoro in base a una pianificazione specifica, ad esempio ogni lunedì alle 9:00 o ogni 15 minuti. Puoi configurare la pianificazione nella console Google Cloud o utilizzando Google Cloud CLI.
Prima di iniziare
- Se non hai già un flusso di lavoro da pianificare, creane e implementane uno.
- 
  
  
    
      Enable the Cloud Scheduler API. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. 
  
In alternativa, in un terminale, inserisci il seguente comando:
gcloud services enable cloudscheduler.googleapis.com
Pianificare un workflow
- Crea un service account in modo che Cloud Scheduler possa effettuare richieste all'API Workflows: - gcloud iam service-accounts create SERVICE_ACCOUNT_NAME - Sostituisci - SERVICE_ACCOUNT_NAMEcon un nome compreso tra 6 e 30 caratteri. Può contenere caratteri alfanumerici minuscoli e trattini. Una volta creato un account di servizio, non puoi modificarne il nome.
- Per consentire all'entità che eseguirà i comandi di Cloud Scheduler di agire come service account Identity and Access Management (IAM), concedi un ruolo che consenta all'entità di impersonare il service account. 
- Concedi al nuovo account di servizio il ruolo workflows.invoker in modo che l'account abbia l'autorizzazione per attivare il workflow: - gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role roles/workflows.invoker - Sostituisci quanto segue: - PROJECT_ID: l'ID del tuo Google Cloud progetto.
- SERVICE_ACCOUNT_NAME: il nome del account di servizio che hai creato in precedenza.
 
- Crea un job Cloud Scheduler che attiva il flusso di lavoro utilizzando l'account di servizio che hai creato in precedenza per l'autenticazione. - Tieni presente che se stai applicando il registro chiamate, devi configurarlo tramite la pagina Workflows della consoleGoogle Cloud . Per maggiori dettagli, consulta i passaggi seguenti. - Console- Per pianificare un flusso di lavoro, vai alla pagina Workflows nella console Google Cloud : 
- Nella pagina Workflows, seleziona un workflow per accedere alla pagina dei dettagli. 
- Nella pagina Dettagli del flusso di lavoro, fai clic su edit Modifica. 
- Nella pagina Modifica flusso di lavoro, seleziona Aggiungi nuovo trigger > Cloud Scheduler. - Viene visualizzato il riquadro Crea un job Scheduler. 
- Definisci la pianificazione: - Nel campo Nome, inserisci un nome per il job Cloud Scheduler. Deve essere univoco per i job nella stessa regione. 
- Nell'elenco Regione, seleziona una regione appropriata, ad esempio us-central1. 
- Nel campo Frequenza, specifica un intervallo di tempo definito in un formato unix-cron. Ad esempio, per programmare l'esecuzione del flusso di lavoro ogni 5 minuti, digita - */5 * * * *.
- Nell'elenco Fuso orario, seleziona il fuso orario che Cloud Scheduler deve utilizzare per interpretare la pianificazione che fornisci. Puoi eseguire ricerche per paese. 
 
- Fai clic su Continua. 
- Configura l'esecuzione: - Nel campo Argomento del workflow, specifica gli argomenti di runtime da passare al workflow prima dell'esecuzione. Gli argomenti devono essere in formato JSON. Ad esempio: - {"firstName":"Sherlock", "lastName":"Holmes"}- {}o lascia il campo vuoto.
- Nell'elenco Livello log di chiamate del flusso di lavoro, seleziona il livello di registrazione delle chiamate che vuoi applicare durante l'esecuzione del flusso di lavoro: - Non specificato: non è specificato alcun livello di logging. Questa è l'impostazione predefinita. Un livello di log dell'esecuzione ha la precedenza su qualsiasi livello di log del workflow, a meno che non sia specificato (valore predefinito). In questo caso, viene applicato il livello di log del workflow.
- Solo errori: registra tutte le eccezioni rilevate o quando una chiamata viene interrotta a causa di un'eccezione.
- Tutte le chiamate: registra tutte le chiamate a flussi di lavoro secondari o funzioni di libreria e i relativi risultati.
- Nessun log: nessun registro chiamate.
 
- Nell'elenco Service account, seleziona il account di servizio che hai creato in precedenza. 
 
- Fai clic su Crea. - Tieni presente che se stai aggiornando un flusso di lavoro esistente, non devi ridistribuirlo. - Il job Cloud Scheduler è ora elencato nella scheda Trigger della pagina Dettagli workflow. 
- Se vuoi aggiornare o eliminare il job, devi modificare il workflow: - Nella pagina Dettagli del flusso di lavoro, fai clic su edit Modifica.
- Nella sezione Trigger, individua il job che vuoi aggiornare o eliminare.
- Fai clic su edit Modifica risorsa o delete Elimina risorsa.
 
 - gcloud- Apri un terminale e inserisci il seguente comando: - gcloud scheduler jobs create http JOB_NAME \ --schedule="FREQUENCY" \ --uri="https://workflowexecutions.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_NAME/workflows/WORKFLOW_NAME/executions" \ --message-body="{\"argument\": \"DOUBLE_ESCAPED_JSON_STRING\"}" \ --time-zone="TIME_ZONE" \ --oauth-service-account-email="SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" - Sostituisci quanto segue: - JOB_NAME: il nome che stai assegnando al tuo job Cloud Scheduler.
- FREQUENCY: un intervallo di tempo definito utilizzando un formato unix-cron. Ad esempio, per programmare l'esecuzione del flusso di lavoro ogni 5 minuti, digita- */5 * * * *.
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- REGION_NAME: la regione in cui si trova il flusso di lavoro, ad esempio- us-central1.
- WORKFLOW_NAME: il nome del flusso di lavoro di cui vuoi pianificare l'esecuzione.
- DOUBLE_ESCAPED_JSON_STRING: una codifica JSON di tutti gli argomenti che stai passando. Le virgolette doppie all'interno della stringa tra virgolette vengono sottoposte all'escape utilizzando le barre rovesciate (\). Ad esempio:- --message-body="{\"argument\": \"{\\\"foo\\\": \\\"bar\\\"}\"}"
- TIME_ZONE: il fuso orario che Cloud Scheduler deve utilizzare per interpretare la pianificazione che fornisci. Ad esempio:- America/New_York.
- SERVICE_ACCOUNT_NAME: il nome del account di servizio che hai creato in precedenza.
 
- Per elencare tutti i job in un progetto: - gcloud scheduler jobs list 
- Per eliminare un job: - gcloud scheduler jobs delete JOB_NAME 
 
Il flusso di lavoro viene ora eseguito in base alla frequenza che hai definito.
Passaggi successivi
- Utilizzare IAM per controllare l'accesso
- Passare argomenti di runtime in una richiesta di esecuzione
- Tutorial: pianificare i workflow con Cloud Scheduler