AWS Lambda URL请求头部超限报错问题咨询
AWS Lambda URL 请求头部限制异常解析
问题背景
在使用Lambda URL的Next.js应用中发现请求异常,后续确认所有Lambda URL均存在此问题:
- 请求头部总大小超过10KB时,返回错误:
Request must be smaller than 6291456 bytes for the InvokeFunction operation - 请求头部超过15KB且单个Cookie超限,返回含
Request Header Or Cookie Too Large的HTML页面
目前仅能找到API Gateway的相关限制文档,对10KB-15KB区间的具体限制逻辑存疑。
复现步骤
- 创建全新Lambda函数并配置Lambda URL
- 发送头部总大小大于10KB的请求
- 观察到上述
InvokeFunction相关错误
限制逻辑说明
10KB:Lambda调用前置拦截
Lambda URL转发请求到Lambda函数前,会对头部总大小做前置校验。当头部超过10KB时,会直接抛出InvokeFunction操作的错误(尽管错误信息提及6MB上限,实际是头部前置限制触发的拦截)。15KB:Web层Cookie超限拦截
当头部总大小超过15KB,且存在单个Cookie大小超过4KB的情况时,Lambda URL内置的Web处理层会直接返回错误HTML页面,请求不会被转发到Lambda函数。10KB-15KB区间规则
在这个区间内:
- 若所有单个Cookie均未超过4KB限制,请求可正常转发到Lambda函数执行
- 若存在单个Cookie超过4KB,即使头部总大小未到15KB,也会触发Web层的错误拦截
测试代码
COOKIE=$(python3 -c " big = '' for j in range(11): big += f'a{j}=' + 'a'*1000 + ';' print(big[:-1]) ") curl -H "Cookie: $COOKIE" <lambda-url>
内容的提问来源于stack exchange,提问作者Ilya Ilya
相关产品推荐
相关产品推荐

