函数超时

如果函数运行时间过长,系统会采取措施来终止或限制函数。此超时期限默认为 60 秒,但您可以在部署函数时延长或缩短此超时期限:

  • 在 Cloud Functions (第 1 代) 中,超时时长上限为 9 分钟(540 秒)。
  • 在 Cloud Functions(第 2 代)中,HTTP 函数的超时时长上限为 60 分钟(3600 秒),事件驱动型函数的超时时长上限为 9 分钟(540 秒)。

如果函数执行超时,则系统响应取决于它是第 1 代函数还是第 2 代函数。

  • 第 1 代:具有 HTTP 错误状态(通常为 408)的响应消息会立即返回给调用方;函数会停止执行。
  • 第 2 代:具有 HTTP 504 错误状态的响应消息会立即返回给调用方。函数实例可能会受到限制,但会继续运行,直到自行退出。函数生成的所有响应消息都会被舍弃,并且不会返回给调用方。

第 2 代函数的行为可能导致意外的副作用。一个常见的问题是工作和日志从一个请求“泄露”到后续请求。为避免这种情况,请使用以下方法防止函数超时:

  1. 将超时值设置为高于函数的预期执行时间。
  2. 跟踪剩余执行时间,然后执行清理并尽早返回。

设置超时时长

您可以使用 Google Cloud CLI 或 Google Cloud 控制台在部署时设置函数的超时时长。

gcloud

如果您要使用 gcloud CLI 进行部署,请使用 --timeout 标志:

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

如需使用 Google Cloud CLI 修改现有的超时时长,请使用新的超时值重新部署函数。

控制台

如需在 Google Cloud 控制台中创建函数期间设置超时时长,请执行以下操作:

  1. 转到 Google Cloud 控制台中的 Cloud Functions 概览页面
  2. 点击创建函数
  3. 填写函数的必填字段。
  4. 展开页面末尾的运行时、构建... 部分,然后点击运行时标签页。
  5. 超时字段中,输入秒数。

    如需在 Google Cloud 控制台中修改现有超时时长,请在函数概览页面上点击函数的名称以转到其详情页面。在详情页面上,点击修改,展开“运行时,构建…”部分,然后点击运行时标签页,在其中直接修改超时字段中的值。