函数超时
如果某个函数运行时间过长,系统会采取措施来终止或限制该函数。此超时时间默认为 60 秒,但您可以在部署函数时延长或缩短超时时间。HTTP 函数的超时时长上限为 60 分钟(3600 秒),事件驱动型函数的超时时长上限为 9 分钟(540 秒)。
当函数执行时间超出该值时,系统将立即向调用者返回具有 HTTP 504 错误状态的响应消息。函数实例可能会受到限制,但会继续运行,直到自行退出。函数生成的所有响应消息都会被舍弃,并且不会返回给调用方。
此行为可能会导致意外的副作用。一个常见的问题是工作和日志从一个请求“泄露”到后续请求。为避免这种情况,请使用以下技巧来防止函数超时:
- 将超时值设置为高于函数的预期执行时间。
- 跟踪剩余执行时间,然后执行清理并提前返回。
设置超时时长
您可以使用 Google Cloud CLI 或 Google Cloud 控制台在部署时设置函数的超时时长。
gcloud
如果您要使用 gcloud CLI 进行部署,请使用 --timeout
标志:
gcloud functions deploy YOUR_FUNCTION_NAME --timeout=TIMEOUT_DURATION ...
如需使用 Google Cloud CLI 修改现有的超时时长,请使用新的超时值重新部署该函数。
控制台
如需在 Google Cloud 控制台中创建函数期间设置超时时长,请执行以下操作:
- 前往 Google Cloud 控制台中的 Cloud Run functions 概览页面。
- 点击创建函数。
- 填写函数的必填字段。
- 展开页面末尾的运行时、构建... 部分,然后点击运行时标签页。
在超时字段中,输入秒数。
如需在 Google Cloud 控制台中修改现有的超时时长,请在函数概览页面上点击相应函数的名称,以转到其详情页面。在详情页面上,点击修改,展开“运行时,构建…”部分,然后点击运行时标签页,在其中直接修改超时字段中的值。