Informazioni su Cloud Tasks

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

In questa pagina vengono descritte le attività e le code di attività cloud e quando e come utilizzarle. Cloud Tasks ti consente di separare le parti del lavoro che possono essere eseguite in modo indipendente, al di fuori del flusso di applicazione principale, e di inviarle per l'elaborazione in modo asincrono, utilizzando i handle che crei. Questi lavori indipendenti vengono chiamati attività. Ad esempio, è necessario aggiornare un database nell'ambito dell'elaborazione di una richiesta dell'utente, ma gli aggiornamenti possono richiedere molto tempo. Scaricare i dettagli come attività ti consente di tornare dalla richiesta più rapidamente.

L'attività caricata viene aggiunta a una coda, che la mantiene fino a quando non viene eseguita correttamente. In base alla configurazione iniziale, la coda può anche fungere da controllo del flusso di invio. Puoi creare e configurare la coda che viene poi gestita dal servizio Cloud Tasks. Una volta aggiunte le attività, la coda le invia e le assicura che vengano elaborate in modo affidabile dai worker. Le complessità associate a questo processo, come i costi di latenza per gli utenti, gli arresti anomali del server, le limitazioni del consumo di risorse e la gestione dei nuovi tentativi vengono gestite dal servizio.

Le attività stesse sono composte da un nome univoco e da informazioni di configurazione, e, facoltativamente, da qualsiasi dato della richiesta iniziale, chiamato payload, necessario per elaborare la richiesta. Poiché il payload viene inviato nel corpo della richiesta, le attività che includono payload devono utilizzare POST o PUT come metodo HTTP.

Gli utenti dei runtime di prima generazione dell'ambiente App Engine devono accedere al servizio Cloud Tasks tramite l'API App Engine Task Queue. Per ulteriori informazioni sull'utilizzo di questo metodo, consulta la documentazione di Java 8, Python 2.7, Go 1.11 o PHP 5.5. Gli utenti dei runtime di ambiente standard di App Engine di seconda generazione, dell'ambiente flessibile e di altre piattaforme ora possono utilizzare l'API Cloud Tasks.

Per accedere al servizio Cloud Tasks utilizzando l'API Cloud Tasks , devi disporre di un progetto Google Cloud.

Casi d'uso

I casi d'uso tipici includono:

  • Accelerare i tempi di risposta degli utenti delegando operazioni in background potenzialmente lente come gli aggiornamenti dei database a un worker
  • Conservazione delle richieste nel contesto di incidenti di produzione imprevisti
  • Agevolare i picchi di traffico rimuovendo le attività non rivolte all'utente dal flusso di utenti principale
  • Gestione delle tariffe delle chiamate API di terze parti

Code di attività cloud con destinazioni HTTP

Nel caso di destinazioni HTTP generiche, il servizio Cloud Tasks inoltra la richiesta di attività al worker, che si trova in qualsiasi endpoint HTTP generico, in base alla configurazione dell'attività. Questo endpoint potrebbe essere su Cloud Functions, Cloud Run, GKE, Compute Engine o anche su un server web on-prem, a seconda di come l'attività è configurata. Queste code inviano le richieste con una frequenza configurabile e affidabile. Garantiscono un'esecuzione di attività affidabile: dopo l'esito positivo, tutti i worker devono inviare un codice di risposta HTTP (200-299) al servizio Cloud Tasks prima della scadenza predefinita di 10 minuti, con un massimo di 30 minuti. Se viene inviata una risposta diversa o non viene ricevuta alcuna risposta, l'attività ritenta.

Code basate su HTTP

La destinazione deve gestire i worker della scalabilità e rimuovere le attività una volta completate.

Se la tua destinazione richiede l'autenticazione, devi configurare due account di servizio, uno per l'applicazione, quello client e uno per la coda. A entrambi gli account devono essere concesse le autorizzazioni necessarie e un identificatore per l'account di servizio client deve essere incluso nella richiesta di attività. Per ulteriori informazioni, consulta la sezione Creare attività HTTP di destinazione.

Code di attività cloud con destinazioni App Engine

Nel caso di App Engine, il servizio Cloud Tasks inoltra anche la richiesta dell'attività al gestore, ma questo worker si trova all'interno di App Engine. Tutte le code che hanno come target i gestori di App Engine devono avere un'app App Engine. I gestori devono essere eseguiti nella regione in cui viene eseguita l'app App Engine. Questa regione funge anche da parametro LOCATION_ID per le tue richieste Cloud Tasks.

Le attività vengono instradate in base alla configurazione dell'attività (o meno comunemente alla coda stessa). Le code inviano le richieste con una frequenza affidabile e configurabile. Garantiscono un'esecuzione affidabile delle attività: dopo aver completato l'operazione, tutti i worker devono inviare un codice di risposta HTTP (200-299) al servizio Cloud Tasks, in questa istanza prima della scadenza, in base al tipo di servizio di scalabilità delle istanze: 10 minuti per la scalabilità automatica o fino a 24 ore per la scalabilità manuale. Se viene inviata una risposta diversa o non viene ricevuta alcuna risposta, l'attività viene ripetuta.

Code basate su App Engine

Poiché i gestori fanno parte di App Engine, il servizio Cloud Tasks stesso può svolgere gran parte della gestione dei processi per l'attività, facendo lo scale up e lo scale down dei lavoratori in relazione al traffico e all'eliminazione delle attività una volta completate.

Regioni supportate per destinazione

Se il tuo target è un endpoint HTTP/S, Cloud Tasks è disponibile in tutte le regioni supportate di Google Cloud.

Se il target è un'applicazione App Engine che si trova all'interno del progetto attuale:

  • Un'attività che ha come target App Engine può essere creata solo nell'area geografica di App Engine del progetto.

  • Un progetto Cloud può contenere una sola app App Engine e la regione in cui si trova l'app App Engine non può essere modificata una volta creata l'app.

  • App Engine è a livello di regione, vale a dire che l'infrastruttura che esegue l'applicazione è in una regione specifica. Se vuoi distribuire code e computing in più aree geografiche, devi scegliere come target un endpoint HTTP/S.

  • Se non utilizzi App Engine come destinazione, non devi eseguire il deployment di un'app App Engine e puoi disabilitare qualsiasi app App Engine esistente.

Workflows

Il flusso di lavoro generale è il seguente:

  1. Crei un worker per elaborare le attività.
  2. Crei una coda.
  3. Puoi creare le attività in modo programmatico e aggiungerle alla coda.
  4. Il servizio Cloud Tasks restituisce un OK all'applicazione di origine. Questo indica che l'attività è stata scritta correttamente nello spazio di archiviazione di Cloud Tasks, rendendo la richiesta di attività altamente disponibile e durevole.
  5. Le attività vengono trasmesse al worker.
  6. Il worker elabora l'attività.
  7. Per completare la sequenza, il worker restituisce un codice di stato di operazione riuscita 2xx al servizio Cloud Tasks.

Una volta che l'attività è stata messa in coda, non vengono resi disponibili dati per la richiesta iniziale.

Funzionalità

Utilizzando Cloud Tasks, puoi inviare elementi di lavoro asincroni con i seguenti controlli:

  • Pianificare tempi di consegna specifici
  • Gestisci le tariffe di consegna
  • Configura un nuovo comportamento
  • Accedere e gestire le singole attività in coda
  • Abilita la deduplicazione delle attività

Termini

La seguente tabella mostra i termini chiave che descrivono aspetti del comportamento di Cloud Tasks.

Termine Definizione
queue Un insieme di attività con lo stesso tipo di destinazione gestite da un'unica configurazione.
tipo di target Dove e come viene elaborata un'attività.
worker Un servizio che elabora le attività.
tentativo Un tentativo di eseguire un'attività.
prova a inviare Il momento in cui Cloud Tasks ha inviato l'attività alla propria destinazione.
tentativo di risposta Una risposta da un worker che indica che il lavoro associato all'attività è stato completato correttamente o non è riuscito.
retry Più tentativi per eseguire un'attività. Il numero di nuovi tentativi viene impostato tramite RetryConfig.
limiti di frequenza I limiti di frequenza per una coda.

Metriche

Le seguenti metriche predefinite di Google Tasks sono disponibili mediante Cloud Monitoring.

Tipo di metrica
Nome visualizzato
Tipo, Tipo, Unità
Descrizione
Etichette
api/request_count
richieste API
DELTA, INT64, 1
Numero di chiamate API Cloud Tasks.
api_method: Il metodo API chiamato (ad es. CreateTask).
response_code: Codice di risposta canonico come stringa (ad es. "ok").
queue/depth
BETA Profondità di coda
GAUGE, INT64, 1
Il numero di attività in coda. Campionamento eseguito ogni 60 secondi. Dopo il campionamento, i dati non sono visibili per un massimo di 120 secondi.
queue/task_attempt_count
Conteggio tentativi di attività
DELTA, INT64, 1
Numero di tentativi di attività suddivisi per codice di risposta.
response_code: codice di risposta canonico come stringa (ad es. "ok").
queue/task_attempt_delays
Ritardi nel tentativo di esecuzione delle attività
DELTA, DISTRIBUTION, ms
Ritardo tra ciascun tempo di tentativo pianificato e il tempo effettivo effettivo.