You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

低流量Node.js Express Lambda站点负载均衡后出现大量502及LambdaThrottling错误

问题根因

你配置的reservedConcurrency: 5直接限制了该Lambda函数的最大并发执行数仅为5。浏览器加载页面时会一次性发起22个左右的并发资源请求,你调整内存和添加预配置并发之后函数响应速度大幅提升,请求会在短时间内集中到达,瞬间打满预留并发阈值,超出的请求直接被Lambda服务端节流,这就是ALB日志中LambdaThrottling错误的来源。
而Lambda常规监控面板的错误计数仅统计函数执行过程中产生的错误,这种还没进入函数执行环节的服务端节流错误不会被计入常规错误指标,CloudWatch日志自然也没有对应报错记录。你配置的3个预配置并发只是保证有3个暖实例可用,并不会突破预留并发设置的5个总上限,所以还是会触发节流。

解决方案

按优先级从高到低推荐:

1. 静态资源分离(最优)

所有JS、CSS、图片这类静态资源直接存放到S3存储桶,搭配CloudFront CDN做缓存,仅动态请求走ALB到Lambda处理。这样Lambda只需处理极少量的动态请求,现有的5并发完全够用,同时还能大幅降低静态资源加载延迟,成本也更低。

2. 直接调整Lambda并发配置

如果你暂时不想做静态资源拆分,直接修改serverless.yml中的并发配置:

  • 要么直接删除reservedConcurrency: 5这行配置,默认情况下函数会共享账号的1000并发配额,足够应对你的请求量;
  • 如果你需要保留预留并发配置,把数值调到30以上,预留足够的缓冲应对页面并发请求。

3. 额外优化

  • 确认ALB的Lambda目标组绑定的版本和预配置并发对应的函数版本/别名一致,避免预配置实例不生效,额外触发冷启动;
  • 在Express层给静态资源添加Cache-Control响应头,让浏览器长期缓存静态资源,减少重复请求量。

内容的提问来源于stack exchange,提问作者Robert Oschler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:54:05