Function execution time is limited by the timeout duration, which you can specify when you deploy a function. By default, a function times out after one minute (60 seconds), but you can extend this period:
- In Cloud Functions (1st gen), the maximum timeout duration is nine minutes (540 seconds).
- In Cloud Functions (2nd gen), the maximum timeout duration is 60 minutes (3600 seconds) for HTTP functions and 9 minutes (540 seconds) for event-driven functions.
When function execution exceeds the timeout, an error status is immediately returned to the caller. CPU resources used by the timed-out function instance are throttled and request processing is paused.
In some circumstances, paused work might continue in the background or resume upon a subsequent request, which can cause unexpected side effects. A common symptom of this behavior is the appearance that work and logs from one request are "leaking" into a subsequent request. Because you cannot depend on paused work being resumed, you must not rely on this behavior. Instead, your function should avoid timeouts using a combination of the following techniques:
- Set a timeout that is higher than your expected function execution time.
- Track the amount of time left during execution and perform cleanup/exit early.
Set a timeout duration
You can set a function's timeout duration at deployment using the Google Cloud CLI or the Google Cloud console.
If you are deploying using the gcloud CLI, use the
gcloud functions deploy YOUR_FUNCTION_NAME --timeout=TIMEOUT_DURATION ...
To set the timeout duration during function creation in the Google Cloud console:
- Go to the Cloud Functions Overview page in the Google Cloud console.
- Click Create function.
- Fill in the required fields for your function.
- Expand the Runtime, build... section at the end of the page and click the Runtime tab.
- In the Timeout field, enter a number of seconds.