Destinazione Pub/Sub
Se scegli il tipo di target Pub/Sub:Specifica il nome dell'argomento a cui verrà pubblicato il job. Si tratta di un argomento Pub/Sub che hai già configurato nel tuo progetto.
Specifica un messaggio da inviare all'argomento. Questo valore viene inviato come parametro
data
all'interno del messaggio Pub/Sub. Per un esempio, consulta la guida rapida.Aggiungi gli attributi del messaggio che ti servono.
Configura eventuali impostazioni aggiuntive utilizzando la sezione
Configure optional settings
.
Cloud Scheduler pubblicherà i messaggi in questo argomento come account di servizio Google APIs.
Target HTTP App Engine
Se scegli il tipo di target HTTP App Engine, devi utilizzare l'app App Engine e la regione associata al progetto corrente. Se vuoi utilizzare un'altra app App Engine al di fuori del progetto attuale, scegli HTTP come target, non App Engine HTTP. Le regole firewall di destinazione devono consentire le richieste dall'intervallo IP 0.1.0.2/32.Imposta il modulo come segue:
Nell'elenco Tipo target, seleziona App Engine HTTP.
Specifica il nome del servizio App Engine che esegue il gestore per il job Cloud Scheduler. Se omesso, viene utilizzato il servizio
default
. Se vuoi impostarlo, puoi trovare i nomi dei servizi nella Google Cloud console.(Facoltativo) Specifica la versione. Se non viene impostata, viene utilizzata la versione attualmente in pubblicazione. Puoi trovare le versioni disponibili nella Google Cloud console.
(Facoltativo) Specifica l'istanza. Se non viene impostato, può essere utilizzata qualsiasi istanza disponibile. Puoi trovare le versioni disponibili nella Google Cloud console.
Specifica l'URL relativo dell'endpoint App Engine che il job contatterà. Se utilizzi il valore predefinito
/
, il job utilizzeràPROJECT-ID.appspot.com
, dovePROJECT-ID
è l'ID progetto attuale.Imposta il metodo HTTP che vuoi utilizzare quando viene eseguito il job. Il valore predefinito è
POST
.Aggiungi alla richiesta le intestazioni necessarie.
Se vuoi, specifica i dati del corpo da inviare alla destinazione. Questi dati vengono inviati nel corpo della richiesta come byte quando viene selezionato il metodo HTTP
POST
oPUT
.
Gli endpoint App Engine di destinazione devono trovarsi nello stesso progetto e possono essere protetti con login: admin
nell'elemento handlers
del file app.yaml
.
Target HTTP
Se scegli il tipo di destinazione HTTP:Specifica l'URL completo dell'endpoint che il job contatterà.
Specifica il metodo HTTP. Il valore predefinito è
POST
.(Facoltativo) Specifica i dati da inviare alla destinazione. Questi dati vengono inviati nel corpo della richiesta come byte quando viene selezionato il metodo HTTP
POST
oPUT
.Aggiungi le intestazioni che ti servono.
Per creare un job di destinazione HTTP che richiede l'autenticazione, consulta Utilizzare l'autenticazione con target HTTP.
Gli endpoint HTTP di destinazione devono essere accessibili pubblicamente.
Puoi utilizzare Cloud Scheduler per configurare unità di lavoro pianificate, note come cron job, che vengono inviate ai target in base a una pianificazione ricorrente, chiamata anche intervallo o frequenza del job.
In qualsiasi momento deve essere eseguita una sola istanza di un job. In rari casi, è possibile richiedere più istanze dello stesso job. Di conseguenza, il gestore delle richieste deve essere idempotente e il codice deve garantire che non si verifichino effetti collaterali dannosi.
Cloud Scheduler è destinato ai job ripetuti. Se devi eseguire un job una sola volta, valuta la possibilità di utilizzare Cloud Tasks, che può pianificare un'attività fino a 30 giorni prima.
Prima di iniziare
Assicurati di aver configurato l'ambiente per Cloud Scheduler.
Scegli un tipo di target
Cloud Scheduler può richiamare i seguenti tipi di target:
Endpoint HTTP
Argomenti Pub/Sub
Servizi App Engine
Richiamare servizi di destinazione limitati all'ingresso interno
Cloud Scheduler può richiamare internamente i seguenti servizi:
- Cloud Run Functions
- Cloud Run (sull'URL
run.app
, non sui domini personalizzati)
Per richiamare internamente queste destinazioni, la destinazione deve trovarsi nello stesso progettoGoogle Cloud o perimetro dei Controlli di servizio VPC del job Cloud Scheduler.
Per scoprire di più sulla protezione dei target limitando il traffico in entrata, consulta Limitazione del traffico in entrata (per Cloud Run) e Configurazione delle impostazioni di rete (per Cloud Run Functions).
Crea un job
Puoi creare un job utilizzando la console Google Cloud o Google Cloud CLI.
Console
Nella Google Cloud console, vai alla pagina Cloud Scheduler.
Fai clic su Crea job.
Nel campo Nome, fornisci un nome per il job univoco per il progetto.
Dopo aver eliminato il job associato, puoi riutilizzare il nome di un job in un progetto.
Nell'elenco Regione, seleziona una regione.
Se utilizzi una destinazione HTTP di App Engine, devi scegliere la stessa regione dell'app App Engine. Per saperne di più, consulta Regioni supportate per destinazione.
Se vuoi, fornisci una breve descrizione del job, ad esempio un promemoria di cosa fa.
Questa descrizione viene visualizzata nella console accanto al nome del job.
Specifica la frequenza con cui deve essere eseguito il job, utilizzando una stringa di configurazione.
Ad esempio, la stringa
0 1 * * 0
esegue il job una volta alla settimana alle 01:00 ogni domenica mattina. La stringa che fornisci qui può essere qualsiasi stringa compatibile con unix-cron. Per ulteriori informazioni, vedi Configurare le pianificazioni cron job.Nell'elenco Fuso orario, scegli il fuso orario da utilizzare per la pianificazione del job.
Fai clic su Continua.
Specifica il tipo di target:
Pub/Sub: devi specificare il nome dell'argomento Pub/Sub che hai già configurato nel tuo progetto e in cui verrà pubblicato il job.
App Engine HTTP: devi utilizzare l'app App Engine e la regione associata al progetto corrente.
Fai clic su Continua.
(Facoltativo) Per configurare il comportamento di ripetizione, fai clic su Configura impostazioni facoltative. Per specificare la durata, utilizza una sequenza di numeri interi decimali non negativi con i seguenti suffissi di unità:
- h - ora
- m - minuto
- s - secondo
- ms - millisecondo
- us - microsecondo
- ns - nanosecondo
Non sono consentiti valori negativi e frazionari. Il campo
Max retry duration
supporta solo i valorih
,m
es
. SiaMin backoff duration
cheMax backoff duration
supportano l'intero set.(Facoltativo) Per le destinazioni HTTP e HTTP App Engine, configura un scadenza per i tentativi di job. Se il gestore di richieste non risponde entro questa scadenza, la richiesta viene annullata e il tentativo viene contrassegnato come non riuscito. Cloud Scheduler riprova a eseguire il job in base alla configurazione dei nuovi tentativi.
Per creare e salvare il job, fai clic su Crea.
Il job verrà ora eseguito alla frequenza specificata.
gcloud
Quando crei un job utilizzando gcloud CLI, utilizzi comandi diversi per ogni tipo di destinazione:
HTTP
Puoi inviare una richiesta a qualsiasi endpoint HTTP o HTTPS. Gli endpoint HTTP di destinazione devono essere accessibili pubblicamente.
gcloud scheduler jobs create http JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --uri=URI
Sostituisci quanto segue:
JOB
: un nome del job che deve essere univoco nel progetto. Tieni presente che non puoi riutilizzare il nome di un job in un progetto anche se elimini il job associato.LOCATION
: la località in cui eseguire il job.SCHEDULE
: la frequenza o l'intervallo del job in cui deve essere eseguito, ad esempioevery 3 hours
. La stringa che fornisci qui può essere qualsiasi stringa compatibile con unix-cron. Sebbene non ne consigliamo più l'utilizzo, la sintassi cron di App Engine precedente è ancora supportata per i job esistenti.Per ulteriori informazioni, vedi Configurare le pianificazioni cron job.
URI
: l'URI completo dell'endpoint che il job contatterà.
Gli altri parametri sono descritti nel riferimento alla riga di comando gcloud:
(Facoltativo) Specifica il metodo HTTP. Il valore predefinito è
POST
.(Facoltativo) Specifica i dati da inviare alla destinazione. Questi dati vengono inviati nel corpo della richiesta come byte quando viene selezionato il metodo HTTP
POST
oPUT
.(Facoltativo) Imposta i valori di ripetizione dei tentativi, che specificano come deve essere ripetuto il tentativo di esecuzione del job App Engine in caso di errore. Nella maggior parte dei casi, i valori predefiniti saranno sufficienti.
Per creare un job target HTTP che richiede l'autenticazione, consulta Utilizzo dell'autenticazione con target HTTP.
Esempio
gcloud scheduler jobs create http my-http-job \ --schedule "0 1 * * 0" \ --uri "http://myproject/my-url.com" \ --http-method GET
Pub/Sub
Devi utilizzare un argomento Pub/Sub che hai già configurato nel tuo progetto. Cloud Scheduler pubblicherà i messaggi in questo argomento come account di servizio API di Google.
gcloud scheduler jobs create pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Sostituisci quanto segue:
JOB
: un nome del job che deve essere univoco nel progetto. Tieni presente che non puoi riutilizzare il nome di un job in un progetto anche se elimini il job associato.LOCATION
: la località in cui eseguire il job.SCHEDULE
: la frequenza o l'intervallo del job in cui deve essere eseguito, ad esempioevery 3 hours
. La stringa che fornisci qui può essere qualsiasi stringa compatibile con unix-cron. Sebbene non ne consigliamo più l'utilizzo, la sintassi cron di App Engine precedente è ancora supportata per i job esistenti.Per ulteriori informazioni, vedi Configurare le pianificazioni cron job.
TOPIC
: il nome dell'argomento a cui verrà pubblicato il job. Utilizza il flag--message-body
o--message-body-from-file
per specificare un messaggio da inviare all'argomento. Questo valore viene inviato come parametrodata
all'interno del messaggio Pub/Sub. Per un esempio, consulta la guida rapida.
Gli altri parametri sono descritti nel riferimento alla riga di comando gcloud.
Esempio
gcloud scheduler jobs create pubsub myjob \ --schedule "0 1 * * 0" \ --topic cron-topic \ --message-body "Hello"
HTTP App Engine
La destinazione App Engine HTTP
è disponibile solo per l'app App Engine associata al progetto corrente. Se vuoi utilizzare un'altra app App Engine al di fuori del progetto corrente, scegli HTTP
come target, non App Engine HTTP
. Le regole firewall di destinazione devono
consentire le richieste provenienti dall'intervallo IP 0.1.0.2/32.
Gli endpoint App Engine possono essere protetti con login: admin
nell'elemento
handlers
del file app.yaml
.
gcloud scheduler jobs create app-engine \ --JOB=JOB \ --location=LOCATION \ --schedule=SCHEDULE
Sostituisci quanto segue:
JOB
: un nome del job che deve essere univoco nel progetto. Tieni presente che non puoi riutilizzare il nome di un job in un progetto anche se elimini il job associato.LOCATION
: la località in cui eseguire il job. Deve corrispondere alla località della tua app App Engine.SCHEDULE
: la frequenza o l'intervallo di lavoro in cui deve essere eseguito il job, ad esempioevery 3 hours
. La stringa che fornisci qui può essere qualsiasi stringa compatibile unix-cron. Sebbene non ne consigliamo più l'utilizzo, la sintassi cron di App Engine precedente è ancora supportata per i job esistenti.Per ulteriori informazioni, vedi Configurare le pianificazioni cron job.
Gli altri parametri sono descritti nel riferimento alla riga di comando gcloud:
Specifica l'URL relativo dell'endpoint App Engine che il job contatterà. Se utilizzi il valore predefinito
/
, il job utilizzeràPROJECT-ID.appspot.com
, dovePROJECT-ID
è l'ID progetto attuale.Specifica il nome del servizio App Engine che esegue il gestore per il job Cloud Scheduler. Se omesso, viene utilizzato il servizio
default
. Se vuoi impostarlo, puoi trovare i nomi dei servizi nella Google Cloud console.(Facoltativo) Imposta il metodo HTTP che vuoi utilizzare quando viene eseguito il job. Il valore predefinito è
POST
.(Facoltativo) Specifica la versione. Se non viene impostata, viene utilizzata la versione attualmente in pubblicazione. Puoi trovare le versioni disponibili nella Google Cloud console.
(Facoltativo) Specifica l'istanza. Se non viene configurato, può essere utilizzata qualsiasi istanza disponibile. Puoi trovare le versioni disponibili nella Google Cloud console.
(Facoltativo) Specifica i dati da inviare alla destinazione. Questi dati vengono inviati nel corpo della richiesta come byte quando viene selezionato il metodo HTTP
POST
oPUT
.(Facoltativo) Imposta i valori di ripetizione dei tentativi, che specificano come deve essere ripetuto il tentativo di esecuzione del job App Engine in caso di errore. Nella maggior parte dei casi, i valori predefiniti sono sufficienti.
Esempio
gcloud scheduler jobs create app-engine my-appengine-job \ --schedule "0 1 * * 0" \ --relative-url "/cron-handler"
Modifica un job
Puoi modificare la configurazione di un job.
Console
Nella Google Cloud console, vai alla pagina Cloud Scheduler.
Seleziona il job da modificare.
Fai clic su Modifica.
Segui i passaggi per definire la pianificazione, configurare l'esecuzione e configurare le impostazioni facoltative durante la creazione di un job.
gcloud
Quando modifichi un job utilizzando gcloud CLI, utilizzi comandi diversi per ogni tipo di target:
HTTP
Puoi inviare una richiesta a qualsiasi endpoint HTTP o HTTPS. Gli endpoint HTTP di destinazione devono essere accessibili pubblicamente.
gcloud scheduler jobs update http JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --uri=URI
Sostituisci quanto segue:
JOB
: un nome del job che deve essere univoco nel progetto. Tieni presente che non puoi riutilizzare il nome di un job in un progetto anche se elimini il job associato.LOCATION
: la località in cui viene eseguito il job. Se non specifichi la località, l'gcloud CLI utilizzerà la tua località predefinita. Se l'offerta di lavoro che vuoi modificare si trova in una posizione diversa, devi specificare la posizione oltre aNAME
affinché l'offerta di lavoro venga identificata. Non puoi aggiornare la sede di lavoro.SCHEDULE
: la frequenza o l'intervallo del job in cui deve essere eseguito, ad esempioevery 3 hours
. La stringa che fornisci qui può essere qualsiasi stringa compatibile con unix-cron. Sebbene non ne consigliamo più l'utilizzo, la sintassi cron di App Engine precedente è ancora supportata per i job esistenti.Per ulteriori informazioni, vedi Configurare le pianificazioni cron job.
URI
: l'URI completo dell'endpoint che il job contatterà.
Gli altri parametri sono descritti nel riferimento alla riga di comando gcloud.
Esempio
gcloud scheduler jobs update http my-http-job \ --schedule "0 1 * * 0" \ --uri "http://myproject/my-url.com" \ --http-method GET
Pub/Sub
Devi utilizzare un argomento Pub/Sub che hai già configurato nel tuo progetto. Cloud Scheduler pubblicherà i messaggi in questo argomento come account di servizio API di Google.
gcloud scheduler jobs update pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Sostituisci quanto segue:
JOB
: un nome del job che deve essere univoco nel progetto. Tieni presente che non puoi riutilizzare il nome di un job in un progetto anche se elimini il job associato.LOCATION
: la località in cui viene eseguito il job. Se non specifichi la località, l'gcloud CLI utilizzerà la tua località predefinita. Se l'offerta di lavoro che vuoi modificare si trova in una posizione diversa, devi specificare la posizione oltre aNAME
affinché l'offerta di lavoro venga identificata. Non puoi aggiornare la sede di lavoro.SCHEDULE
: la frequenza o l'intervallo di lavoro in cui deve essere eseguito il job, ad esempioevery 3 hours
. La stringa che fornisci qui può essere qualsiasi stringa compatibile unix-cron. Sebbene non ne consigliamo più l'utilizzo, la sintassi cron di App Engine precedente è ancora supportata per i job esistenti.Per ulteriori informazioni, vedi Configurare le pianificazioni cron job.
TOPIC
: il nome dell'argomento a cui verrà pubblicato il job. Utilizza il flag--message-body
o--message-body-from-file
per specificare un messaggio da inviare all'argomento. Questo valore viene inviato come parametrodata
all'interno del messaggio Pub/Sub. Per un esempio, consulta la guida rapida.
Gli altri parametri sono descritti nel riferimento alla riga di comando gcloud.
Esempio
gcloud scheduler jobs update pubsub myjob \ --schedule "0 1 * * 0" \ --topic cron-topic --message-body "Hello"
HTTP App Engine
La destinazione App Engine HTTP
è disponibile solo per l'app App Engine associata al progetto corrente. Se vuoi utilizzare un'altra app App Engine al di fuori del progetto corrente, scegli HTTP
come target, non App Engine HTTP
.
Gli endpoint App Engine possono essere protetti con login: admin
nell'elemento
handlers
del file app.yaml
.
gcloud scheduler jobs update app-engine JOB \ --location=LOCATION \ --schedule=SCHEDULE
Sostituisci quanto segue:
JOB
: un nome del job che deve essere univoco nel progetto. Tieni presente che non puoi riutilizzare il nome di un job in un progetto anche se elimini il job associato.LOCATION
: la località in cui viene eseguito il job (corrisponde alla località dell'app App Engine di destinazione). Se non specifichi la località, l'gcloud CLI utilizzerà la tua località predefinita. Se l'offerta di lavoro che vuoi modificare si trova in una posizione diversa, devi specificare la posizione oltre aNAME
affinché l'offerta di lavoro venga identificata. Non puoi aggiornare la sede di lavoro.SCHEDULE
: la frequenza o l'intervallo di lavoro in cui deve essere eseguito il job, ad esempioevery 3 hours
. La stringa che fornisci qui può essere qualsiasi stringa compatibile unix-cron. Sebbene non ne consigliamo più l'utilizzo, la sintassi cron di App Engine precedente è ancora supportata per i job esistenti.Per ulteriori informazioni, vedi Configurare le pianificazioni cron job.
Gli altri parametri sono descritti nel riferimento alla riga di comando gcloud.
Esempio
gcloud scheduler jobs update app-engine my-appengine-job \ --schedule "0 1 * * 0" \ --relative-url "/cron-handler"
Mettere in pausa un job
Puoi mettere in pausa l'esecuzione di un job.
Console
Nella console Google Cloud , vai a Cloud Scheduler.
Seleziona il job da mettere in pausa.
Fai clic su Metti in pausa.
gcloud
Apri una finestra del terminale sulla macchina su cui hai installato gcloud CLId.
Esegui il comando:
gcloud scheduler jobs pause MY_JOB
Sostituisci
MY_JOB
con il nome del job da mettere in pausa.
Mentre un job è in pausa, puoi anche modificarlo. Dopo la modifica, il job rimane in pausa finché non lo riprendi.
Riprendere un job
Puoi riprendere l'esecuzione di un job in pausa.
Console
Nella console Google Cloud , vai a Cloud Scheduler.
Seleziona il job da riprendere.
Il job deve essere già in pausa.
Fai clic su Riprendi.
gcloud
Apri una finestra del terminale sulla macchina su cui hai installato gcloud CLId.
Esegui il comando:
gcloud scheduler jobs resume MY_JOB
Sostituisci
MY_JOB
con il nome del job da riprendere.
Elimina un job
Puoi eliminare un job.
Console
Nella console Google Cloud , vai a Cloud Scheduler.
Seleziona il job da eliminare.
Fai clic su Elimina.
gcloud
Apri una finestra del terminale sulla macchina su cui hai installato gcloud CLId.
Esegui il comando:
gcloud scheduler jobs delete MY_JOB
Sostituisci
MY_JOB
con il nome del job da eliminare.