Gestire i cron job

Destinazione Pub/Sub

Se scegli il tipo di target Pub/Sub:

  1. 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.

  2. 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.

  3. Aggiungi gli attributi del messaggio che ti servono.

  4. Configura eventuali impostazioni aggiuntive utilizzando la sezione Configure optional settings.

Cloud Scheduler pubblicherà i messaggi in questo argomento come account di servizio API di Google.

Target HTTP App Engine

Se scegli il tipo di target App Engine HTTP, 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 destinazione, non App Engine HTTP. Le regole firewall di destinazione devono consentire le richieste provenienti dall'intervallo IP 0.1.0.2/32.

Imposta il modulo come segue:

  1. Nell'elenco Tipo di target, seleziona App Engine HTTP.

  2. 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 consoleGoogle Cloud .

  3. (Facoltativo) Specifica la versione. Se non viene impostata, viene utilizzata la versione attualmente in pubblicazione. Puoi trovare le versioni disponibili nella consoleGoogle Cloud .

  4. (Facoltativo) Specifica l'istanza. Se non viene impostato, può essere utilizzata qualsiasi istanza disponibile. Puoi trovare le versioni disponibili nella consoleGoogle Cloud .

  5. Specifica l'URL relativo dell'endpoint App Engine che il job contatterà. Se utilizzi il valore predefinito /, il job utilizzerà PROJECT-ID.appspot.com, dove PROJECT-ID è l'ID progetto attuale.

  6. Imposta il metodo HTTP che vuoi utilizzare quando viene eseguito il job. Il valore predefinito è POST.

  7. Aggiungi alla richiesta le intestazioni che ti servono.

  8. 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 o PUT.

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:

  1. Specifica l'URL completo dell'endpoint che il job contatterà.

  2. Specifica il metodo HTTP. Il valore predefinito è POST.

  3. (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 o PUT.

  4. Aggiungi le intestazioni che ti servono.

  5. Per creare un job di destinazione HTTP che richiede l'autenticazione, consulta Utilizzare l'autenticazione con le destinazioni 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 rare circostanze, è 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.

Se un job è ancora in esecuzione o in attesa di una risposta dalla relativa destinazione, le altre esecuzioni pianificate del job vengono ignorate finché l'esecuzione corrente non termina o non scade. Per saperne di più, consulta Le esecuzioni successive del job non vengono avviate.

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.

Scegliere un tipo di target

Cloud Scheduler può richiamare i seguenti tipi di target:

Richiamare i 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 questi target, il target deve trovarsi nello stesso progettoGoogle Cloud o perimetro dei Controlli di servizio VPC del tuo job Cloud Scheduler.

Per scoprire di più sulla protezione delle destinazioni 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

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

    Vai a Cloud Scheduler

  2. Fai clic su Crea job.

  3. 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.

  4. 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.

  5. 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.

  6. 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 all'1:00 ogni domenica mattina. La stringa che fornisci qui può essere qualsiasi stringa compatibile con unix-cron. Per saperne di più, consulta Configura le pianificazioni cron job.

  7. Nell'elenco Fuso orario, scegli il fuso orario da utilizzare per la pianificazione del job.

  8. Fai clic su Continua.

  9. Specifica il tipo di target: