使用 Lambda Imgproxy 的 Cloudfront CDN 导致 429 请求过多

问题描述 投票:0回答:1

我正在使用运行

darthsim/imgproxy
的图像类型 Lambda 函数,然后我有一个指向 lambda 的公共 URL 的 Cloudfront 发行版。

在我的网站(本地主机或使用 https 的生产环境)上运行此程序,假设页面上有 30-40 个图像,如果我直接使用函数 URL,则没有问题,如果我使用 CloudFront URL,我会收到 HTTP 错误 429 相当长的时间很少有图像,如果我在单独的选项卡中打开返回错误的 URL 之一 - 它加载正常。

我已针对 CloudFront 行为尝试了不同的源策略,但无济于事。

amazon-web-services aws-lambda amazon-cloudfront imgproxy
1个回答
0
投票

我遇到了类似的问题,就我而言,这是由于 Lambda 函数的并发执行限制设置为 10。当请求数量超过此限制时,会导致 HTTP 429 错误。

这是我解决这个问题的方法:

  1. 增加 Lambda 并发限制:您可以从 服务配额仪表板请求增加并发执行限制。这应该允许在该区域同时执行更多操作,从而一次处理更多请求,而不会达到速率限制。

  2. 设置 CloudFront 缓存: 确保 CloudFront 分发行为已配置缓存策略以有效缓存图像。对我来说,Lambda 函数的默认缓存策略是禁用缓存。切换到缓存优化策略后,性能得到改善,因为对同一图像的重复请求是从缓存中提供的,而不是触发 Lambda 执行。

© www.soinside.com 2019 - 2024. All rights reserved.