CloudFront 源响应超时 > 60

Gar*_*son 10 http amazon-cloudfront angular

我有 CloudFront 为我的 Angular 页面提供服务,Elastic Beanstalk 运行一个处理 API 调用的 Nodejs 服务器。

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

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

我的问题是,有没有办法让 CloudFront 等待超过 60 秒,或者我可以定期返回一些信息,表明我仍在工作并重置超时?到目前为止我尝试过的一切都不起作用。

Gar*_*son 11

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

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

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

  • 只是一个简短的更新。他们确实为我提高了限制,但确实说这是 180 的硬性限制,不能超过该限制。 (4认同)