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:
- Imposta un timeout superiore al tempo di esecuzione della funzione previsto.
- Monitora il tempo rimanente durante l'esecuzione. Poi esegui la pulizia e rientra in anticipo.
Imposta una durata del timeout
Per impostare la durata del timeout di una funzione al momento del deployment con Google Cloud CLI, utilizza il flag --timeout
:
gcloud functions deployYOUR_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.