CloudFront 源响应超时 > 60

CloudFront Origin Reponse Timeout > 60

我有 CloudFront 服务我的 Angular 页面和 Elastic Beanstalk 运行 一个处理 API 调用的 nodejs 服务器。

尤其是一个电话要花很多时间。它读取存储在平​​面结构中的文件并将它们放入文件结构中,然后将它们压缩并 return 发送给用户。大多数这些文件的大小都超过 100 MB,因此需要时间。我已将 CloudFront 的原始响应超时设置为 60(它说的是最大值),我正在处理的数据将在那么长的时间内正常工作,但我们才刚刚开始,我知道稍后会有 60 秒的时间不会足够长。

CloudFront 似乎确实进行了 3 次尝试(最初加上 2 次重试),因此总共需要 3 分钟,但是当第一次重试出现时,该过程将不会完成。我什至加入了一个 hack 来检查进程是否已经在后续调用中启动,但它仍然挂起进程并最终 returning a 504.

我的问题是有没有办法让 CloudFront 等待超过 60 秒,或者有什么我可以定期 return 说我仍在工作并重置超时?到目前为止我尝试过的所有方法都不起作用。

对我来说似乎是正常趋势。在到处搜索一两天后,我 post 提出了一个问题,不久之后我找到了解决方案。这是我发现的:

您可以请求增加 CloudFront 的源响应超时(请参阅 here)。不知道为什么我没有早点找到这个页面。问题仍然是,如果我增加它并保持它的方式,这将意味着对我的 api 服务器的所有请求的超时将是这么高的值,只有这个请求需要更高的限制(在至少现在)。因此,我创建了一个新的起源和行为,它只适用于那个 api 调用,并且可以将限制设置得更高,而对所有其他 api 调用保持更低的限制。

至少理论上是这样。我的测试证实了这一点,但还没有听说我增加限制的请求是否已被批准。