Lambda集成AWS API Gateway压测时自定义头部丢失问题排查
JMeter请求头部格式/编码异常
压测时批量生成的请求里,部分自定义头的名称或值可能踩了HTTP标准的坑——比如带空格、控制字符,或者用了ALB高并发下敏感的字符(比如下划线,虽然官方说支持,但边缘场景可能有问题)。Postman单个请求没问题,但批量生成容易出这种情况。抓包对比Postman和JMeter的请求头,重点看自定义头的格式差异。Lambda并发/超时导致头部未生成
高并发压测时,Lambda如果预留并发不够,会触发节流;或者函数执行超时,直接导致部分请求的自定义头根本没被添加。去Lambda控制台看Invocations、Errors、Duration指标,有没有报错或超时的请求——这些请求自然没头,看起来像被ALB丢了。API Gateway集成延迟或失败
压测时API Gateway的集成链路可能扛不住并发,出现延迟或失败,导致Lambda返回的头部没被带上就转发给了ALB。查API Gateway的IntegrationLatency和5xx错误指标,看有没有集成失败的情况。另外确认集成是同步模式,异步模式下可能丢头部。ALB头部大小超限
ALB默认限制请求头部总大小为64KB,压测时如果请求头总大小超了,ALB会自动丢部分头部(包括自定义头)。对比Postman和JMeter的请求头大小,或者看ALB的HTTPCode_ELB_413_Count指标有没有413错误,抓包也能看到头部是否被截断。JMeter连接复用的线程安全问题
JMeter的HTTP请求如果开了连接复用,部分线程可能没正确更新头部,导致自定义头没被发送。试试禁用Keep-Alive,或者在HTTP请求配置里勾选Reset connection between samples,看能不能解决。
内容的提问来源于stack exchange,提问作者Aayush Saini

