首页 > 解决方案 > 如何修复 CloudRun 错误“请求被中止,因为没有可用的实例”

问题描述

我正在使用托管 CloudRun 来部署一个带有concurrency=1. 部署后,我将并行触发四个长时间运行的请求。大多数时候,一切正常——但偶尔,我会在几秒钟内从一个节点面临 500 个;日志仅提供主题中提供的错误消息。

使用带指数退避的重试并没有改善这种情况;重试也以 500 秒结束。StackDriver 日志也​​不提供更多信息。

可能相关gcloud beta run deploy的论点:

--memory 2Gi --concurrency 1 --timeout 8m --platform managed

错误消息的确切含义是什么——我该如何解决这个问题?

标签: google-cloud-platformserverlessgoogle-cloud-run

解决方案


当基础架构无法快速扩展以赶上流量高峰时,可能会出现此错误消息。基础设施只会在队列中保留一个请求一段时间(大约 10 秒)然后中止它。

这通常发生在以下情况:

  1. 流量突然大幅增加
  2. 冷启动时间长
  3. 请求时间长

推荐阅读