Timeout funzione

Se una funzione viene eseguita per troppo tempo, il sistema adotta misure per interromperla o limitarne la velocità. Il valore predefinito per questo periodo di timeout è di 60 secondi, ma puoi estenderlo o ridurlo quando esegui il deployment della funzione. La durata massima del timeout è di 60 minuti (3600 secondi) per le funzioni HTTP e di 9 minuti (540 secondi) per le funzioni basate su eventi.

Quando l'esecuzione della funzione raggiunge il timeout, al chiamante viene restituito immediatamente un messaggio di risposta con uno stato di errore HTTP 504. L'istanza della funzione potrebbe essere limitata, ma continua a funzionare finché non esce autonomamente. Qualsiasi messaggio di risposta generato dalla funzione viene ignorato e non restituito al chiamante.

Questo comportamento può causare effetti collaterali imprevisti. Un sintomo comune è la comparsa di lavoro e log di una richiesta che "trasbordano" in una richiesta successiva. Per evitare questo problema, evita i timeout nelle funzioni con le seguenti tecniche:

  1. Imposta un timeout superiore al tempo di esecuzione della funzione previsto.
  2. Monitora il tempo rimanente durante l'esecuzione. Poi esegui la pulizia e rientra in anticipo.

Imposta una durata del timeout

Puoi impostare la durata del timeout di una funzione al momento del deployment utilizzando Google Cloud CLI o la console Google Cloud.

gcloud

Se esegui il deployment utilizzando gcloud CLI, utilizza il flag --timeout:

gcloud functions deploy YOUR_FUNCTION_NAME --timeout=TIMEOUT_DURATION ...

Per modificare la durata di un timeout esistente con Google Cloud CLI, esegui nuovamente il deployment della funzione con un nuovo valore di timeout.

Console

Per impostare la durata del timeout durante la creazione della funzione nella console Google Cloud:

  1. Vai alla pagina Panoramica delle funzioni Cloud Run nella console Google Cloud.
  2. Fai clic su Crea funzione.
  3. Compila i campi obbligatori per la funzione.
  4. Espandi la sezione Runtime, build… alla fine della pagina e fai clic sulla scheda Runtime.
  5. Nel campo Timeout, inserisci un numero di secondi.

    Per modificare la durata di un timeout esistente nella console Google Cloud, nella pagina Panoramica delle funzioni fai clic sul nome della funzione per accedere alla relativa pagina dei dettagli. Nella pagina dei dettagli, fai clic su Modifica, espandi la sezione Runtime, compilazione… e fai clic sulla scheda Runtime, dove puoi modificare direttamente il valore nel campo Timeout.