【发布时间】: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