对于 Cloud Run 服务,请求超时设置指定部署到 Cloud Run 的服务必须返回响应的时间范围。如果服务未在指定时间内返回响应,则请求将结束并返回错误 504。请注意,响应请求的容器实例不会终止。
超时时长
超时默认设置为 5 分钟(300 秒),最长可延长至 60 分钟(3,600 秒)。
您可以在部署容器映像或更新服务配置时更改此设置。
除了更改 Cloud Run 请求超时之外,您还应检查语言框架,以确定其中是否包含专用的请求超时设置,该设置也必须进行更新。Cloud Run 服务的某些客户端可能还会施加更严格的超时限制。
所需的角色
如需获得配置和部署 Cloud Run 服务所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
Cloud Run 服务的 Cloud Run Developer (
roles/run.developer
) 角色 -
服务身份的 Service Account User (
roles/iam.serviceAccountUser
) 角色
如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色和 Cloud Run IAM 权限。如果您的 Cloud Run 服务与Google Cloud API(例如 Cloud 客户端库)进行交互,请参阅服务身份配置指南。如需详细了解如何授予角色,请参阅部署权限和管理访问权限。
设置和更新请求超时
任何配置更改都会导致新修订版本的创建。后续修订版本也将自动采用此配置设置,除非您进行了明确更新。
您可以在创建新服务或部署新修订版本时使用 Google Cloud 控制台、gcloud 命令行或 YAML 文件设置请求超时。
在 Google Cloud 控制台中,前往 Cloud Run:
点击部署容器,然后选择服务以配置新服务。如果您要配置现有服务,请点击该服务,然后点击修改和部署新的修订版本。
如果您要配置新服务,请根据需要填写初始服务设置页面,然后点击容器、网络、安全性以展开服务配置页面。
点击容器标签页。
- 在请求超时字段中,输入要使用的超时值(以秒为单位)。请使用
1
到3600
秒,或 1 到60
分钟之间的值。
- 在请求超时字段中,输入要使用的超时值(以秒为单位)。请使用
点击创建或部署。
您可以随时使用以下命令更新给定修订版本的请求超时:
gcloud run services updateSERVICE --timeout=TIMEOUT
您需要进行如下替换:
- 将 SERVICE 替换为您的服务名称。
将 TIMEOUT 替换为响应的返回用时;您可以使用整数值,也可以使用绝对时长值,例如
1m20s
(表示 1 分 20 秒)。如果使用整数值,则假定单位为秒。您指定的值必须少于 60 分钟。
您还可以在部署期间使用以下命令设置请求超时:
gcloud run deploy --imageIMAGE_URL --timeout=TIMEOUT
您需要进行如下替换:
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- TIMEOUT,表示响应的返回用时,可以使用整数值,也可以使用时长值,例如
1m20s
(表示 1 分 20 秒)。如果使用整数值,则假定单位为秒。您指定的值必须少于 60 分钟。
如果您要创建新的服务,请跳过此步骤。如果您要更新现有服务,请下载其 YAML 配置:
gcloud run services describe
SERVICE --format export > service.yaml更新
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
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- 将 VALUE 替换为所需的超时(以秒为单位)。
- 将 REVISION 替换为新的修订版本名称或者将其删除(如果存在)。如果您提供新的修订版本名称,则该名称必须满足以下条件:
- 开头为
SERVICE-
- 仅包含小写字母、数字和
-
- 不以
-
结尾 - 不超过 63 个字符
- 开头为
使用以下命令创建或更新服务:
gcloud run services replace service.yaml
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
将以下内容添加到 Terraform 配置中的 template
下的 google_cloud_run_v2_service
资源中。将 300s
替换为服务所需的请求超时。
查看请求超时设置
如需查看 Cloud Run 服务的当前请求超时设置,请执行以下操作:
在 Google Cloud 控制台中,前往 Cloud Run:
点击您感兴趣的服务以打开“服务详细信息”页面。
点击修订版本标签页。
在右侧的详细信息面板中,“容器”标签页下列出了请求超时设置。
使用以下命令:
gcloud run services describe
SERVICE 在返回的配置中找到请求超时设置。