流式传输 webm 视频时,Cloud Run 返回 503

时间:2021-02-06 03:33:44

标签: google-cloud-run

我正在尝试通过 http 从 Cloud Run 向浏览器发送 webm 视频流,但它始终返回带有消息 503Service Unavailable。其他请求正常返回,因此该服务实际上并不可用。响应几乎立即出现,因此它似乎不是超时。响应标头不会继承我的内容类型 (video/webm) 而是 text/plain。控制台日志吐出这个错误:

<块引用>

请求失败,因为 HTTP 响应格式错误或 与实例的连接出错。

服务器和客户端在本地主机上的行为完全正确。我了解 Cloud Run 的请求最长为 15 分钟。我还根据几个月前的 this blog post 推断我可以流式传输视频:

<块引用>

以下是服务器端 HTTP 流传输的一些示例用例:

  • 从无服务器应用程序流式传输大文件(例如视频)
  • 可以使用进度指示器报告的长时间运行的计算
  • 可以返回中间或批量响应的批处理作业

我尝试过其他视频容器格式(例如,flv)以及将 Content-Length 设置为最大值 (Long.MAX_VALUE) 或根本不设置它。但是,考虑到它在本地工作以及我在日志中看到的错误,我倾向于相信 Cloud Run(或介于两者之间的某个层)对响应本身犹豫不决,而不是通过它。我对 Cloud Run 的期望有什么遗漏吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试使用传输编码:分块?