设置请求超时(服务)

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

对于 Cloud Run 服务,请求超时设置指定部署到 Cloud Run 的服务必须返回响应的时间范围。如果服务未在指定时间内返回响应,则请求将结束并返回错误 504。

超时默认设置为 5 分钟,最长可延长至 60 分钟。

您可以在部署容器映像或更新服务配置时更改此设置。

除了更改 Cloud Run 请求超时之外,您还应检查语言框架,以确定其中是否包含专用的请求超时设置,该设置也必须进行更新。

设置和更新请求超时

任何配置更改都会导致新修订版本的创建。后续修订版本也将自动采用此配置设置,除非您进行了明确更新。

您可以在创建新服务部署新修订版本时使用 Google Cloud 控制台、gcloud 命令行或 YAML 文件设置请求超时。

控制台

  1. 转到 Cloud Run

  2. 如果您是要配置一个新服务来作为部署目标,请点击创建服务。如果您要配置现有服务,请点击该服务,然后点击修改和部署新的修订版本

  3. 如果您要配置新服务,请根据需要填写初始服务设置页面,然后点击容器、连接、安全性以展开服务配置页面。

  4. 点击容器标签页。

    图片

  5. 请求超时字段中,输入要使用的超时值(以秒为单位)。请使用 13600 秒,或 1 到 60 分钟之间的值。

  6. 点击创建部署

命令行

您可以随时使用以下命令更新给定修订版本的请求超时

gcloud run services update [SERVICE] --timeout=[TIMEOUT]

替换

  • [SERVICE] 替换为您的服务名称。
  • [TIMEOUT] 替换为所需时间;您可以使用整数值,也可以使用绝对时长值,例如 1m20s(表示 1 分 20 秒)。如果使用整数值,则假定单位为秒。您指定的值必须少于 60 分钟。

您还可以在部署期间使用以下命令设置请求超时:

gcloud run deploy --image IMAGE_URL --timeout=[TIMEOUT]

替换

  • IMAGE_URL 替换为对容器映像的引用(例如 us-docker.pkg.dev/cloudrun/container/hello:latest)。
  • [TIMEOUT] 替换为所需时间;您可以使用整数值,也可以使用时长值,例如 1m20s(表示 1 分 20 秒)。如果使用整数值,则假定单位为秒。您指定的值必须少于 60 分钟。

YAML

您可以使用 gcloud run services describe --format export 命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后按照后续说明修改字段,最后使用 gcloud run services replace 命令上传修改后的 YAML。请务必严格按照说明修改字段。

  1. 要查看和下载配置,请运行以下命令:

    gcloud run services describe SERVICE --format export > service.yaml
  2. 更新 timeoutSeconds 特性:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE
          timeoutSeconds: VALUE

    替换

    • SERVICE 替换为您的 Cloud Run 服务的名称
    • IMAGE_URL 替换为对容器映像的引用(例如 us-docker.pkg.dev/cloudrun/container/hello:latest)。
    • VALUE 替换为所需的超时(以秒为单位)。
    • REVISION 替换为新的修订版本名称或者将其删除(如果存在)。如果您提供新的修订版本名称,则该名称必须满足以下条件:
      • 开头为 SERVICE-
      • 仅包含小写字母、数字和 -
      • 不以 - 结尾
      • 不超过 63 个字符
  3. 使用以下命令将服务替换为其新配置:

    gcloud run services replace service.yaml

Terraform

将以下内容添加到 Terraform 配置中的 template.spec 下的 google_cloud_run_service 资源中。将 300 替换为服务所需的请求超时(以秒为单位)。

# Timeout
# https://cloud.google.com/run/docs/configuring/request-timeout
timeout_seconds = 300

如需在 Google Cloud 项目中应用 Terraform 配置,请完成以下步骤:

  1. 启动 Cloud Shell
  2. 设置要应用 Terraform 配置的 Google Cloud 项目:
    export GOOGLE_CLOUD_PROJECT=PROJECT_ID
    
  3. 创建一个目录,并在该目录中打开一个新文件。文件名必须具有 .tf 扩展名,例如 main.tf
    mkdir DIRECTORY && cd DIRECTORY && nano main.tf
    
  4. 将示例复制到 main.tf
  5. 查看和修改要应用到您的环境的示例参数。
  6. 依次按 Ctrl-xy 保存更改。
  7. 初始化 Terraform:
    terraform init
  8. 查看配置并验证 Terraform 将创建或更新的资源是否符合您的预期:
    terraform plan

    根据需要更正配置。

  9. 通过运行以下命令并在提示符处输入 yes 来应用 Terraform 配置:
    terraform apply

    等待 Terraform 显示“应用完成!”消息。

  10. 打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台中,在界面中找到资源,以确保 Terraform 已创建或更新它们。

查看请求超时设置

如需查看 Cloud Run 服务的当前请求超时设置,请执行以下操作:

控制台

  1. 转到 Cloud Run

  2. 点击您感兴趣的服务以打开“服务详细信息”页面。

  3. 点击修订版本标签页。

  4. 在右侧的详细信息面板中,“容器”标签页下列出了请求超时设置。

命令行

  1. 使用以下命令:

    gcloud run services describe SERVICE
  2. 在返回的配置中找到请求超时设置。