【问题标题】:Cloud Run crashes after 121 secondsCloud Run 在 121 秒后崩溃
【发布时间】:2020-09-27 19:36:13
【问题描述】:

我正在使用 PubSub 主题和订阅触发器触发长时间运行的抓取 Cloud Run 功能。每次我运行它都会在 121.8 秒后崩溃,但我不明白为什么。

POST 503 556B 121.8s APIs-Google; (+https://developers.google.com/webmasters/APIs-Google.html) https://????.a.run.app/

The request failed because either the HTTP response was malformed or connection to the instance had an error.

我有一个内置的超时触发器,当我将其设置为 1 分钟时,功能运行时没有任何问题,但当我设置为 2 分钟时,会触发上述错误,因此它必须与 Cloud Run 或订阅有关超时设置,但我已尝试增加这些设置(请阅读下文)。

涉及的事情

1 x 云跑 1 x SubPub 订阅 1 x SubPub 主题

这些是我检查过的东西

  • Cloud Run 实例超时(900 秒)
  • Pubsub 订阅超时(确认截止日期 - 600 秒和消息保留持续时间 - 10 分钟)
  • 我已将内存增加到 4GB,这远远超出了所需。

谁能指出我正确的方向?

【问题讨论】:

  • 请尝试分享重现问题的代码示例
  • @Steren 这是一段很长的代码和不同的文件,所以会很麻烦。但我 99% 确定我已将问题隔离为超时(如果函数运行在 121.8 秒以上,则返回 503),所以我很确定这与 GCP 中的设置有关。为什么我确定这一点是因为如果我使用内部超时触发器运行该函数 1 分钟,它总是运行并返回 200 状态代码。
  • 你共享的日志是Cloud Run日志吗?另外,你执行报废,我猜你执行了很多呼出电话,对吧?如果是这样,您能否确定您访问的哪个 URL 导致了此错误?
  • 您是否有任何日志明确返回超时错误?我问的原因是因为您提到一切都在较短的超时限制下工作,这是一种奇怪的行为,因此可能是其他原因造成的。
  • 这是日志2020-09-29 08:24:45.492 CESTPOST503556 B121.7 sAPIs-Google; (+https://developers.google.com/webmasters/APIs-Google.html) https://.....app/ The request failed because either the HTTP response was malformed or connection to the instance had an error.

标签: google-cloud-platform google-cloud-pubsub google-cloud-run


【解决方案1】:

这几乎可以肯定是因为 Node.js 的默认服务器超时时间为 120 秒。

尝试server.setTimeout(0) 删除此超时。

【讨论】:

  • 确实如此。 Cloud Run docs 已经提到:“除了更改 Cloud Run 请求超时,您还应该检查您的语言框架,看看它是否有自己的请求超时设置,您也必须更新。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 2020-12-07
  • 1970-01-01
  • 2013-12-23
  • 2020-10-26
  • 1970-01-01
  • 2017-04-03
相关资源
最近更新 更多