【发布时间】:2018-05-25 00:01:52
【问题描述】:
问题:
我们使用的 Https 函数响应时间超过 60 秒(这是我们用例的必要要求,不能用异步执行代替)。我们配置了函数超时,以便它们在例如之后成功。 75 秒,如从 Chrome 或 Postman 通过例如直接执行所示https://us-central1-<project-id>.cloudfunctions.net/test.
我们还配置了托管代理以将所有对/api 的请求重写为这些函数。但是,当通过这些“托管”端点(例如https://<project-id>.firebaseapp.com/api/test)提交相同的请求时,我们在 Chrome 和 Postman 中仅 60 秒后就会收到 504(网关超时)错误。这表明主机代理本身在函数成功之前超时(这种情况仍然会发生,如 Firebase 控制台日志中所示)。
问题:
是否可以将托管超时设置为更高的值(例如 120 秒)?
可能的解决方案/解决方法:
- 尝试在客户端请求中设置
Connection: keep-alive和Keep-Alive: timeout=120标头,但这似乎对托管代理没有任何影响;或者我们做的不对。 - 目前唯一的解决方法是不使用重写规则,而是依赖“直接”URL(来自
cloudfunctions.net)。但是,这需要在浏览器客户端中处理 CORS,更重要的是,更改我们的 URL 解析方案和函数代码的组织(例如,我们不能为每个函数使用长路径,例如/api/some/path/to/test,因为只有第一部分路径,例如api,将被视为函数名)。
谢谢!
【问题讨论】:
标签: firebase google-cloud-functions firebase-hosting