InvokeFunction操作的请求大小必须小于6291456字节

前端开发 2026-07-09

在向AWS Lambda发送请求时,我偶尔会遇到一个奇怪的错误。起初,我是在一个使用Lambda URL的 Next.js应用中遇到它,但后来发现对任何Lambda URL来说,时而能工作,时而不能。

复现步骤:

  1. 创建一个新的Lambda函数
  2. 尝试用头部超过10KB的请求去调用它
  3. 观察到 "Request must be smaller than 6291456 bytes for the InvokeFunction operation" 错误

我能找到的与此问题最接近的文档是 https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-quotas.html,它关于的是API网关,而不是Lambda。

此外,如果请求头达到15KB以上且只有一个cookie的情况超过了某个限制,我会得到包含以下短语的HTML:

Request Header Or Cookie Too Large

这意味着实际的头部限制应该是15KB,但在10KB–15KB区间会发生什么?

调用的代码可以像这样:

COOKIE=$(python3 -c "
big = ''
for j in range(11):
    big += f'a{j}=' + 'a'*1000 + ';'
print(big[:-1])
")

curl -H "Cookie: $COOKIE" <lambda-url>

解决方案

AWS支持表示,这个问题是由于在使用Lambda Function URLs时,HTTP层存在一个硬性限制所致。

这意味着Lambda URL官方公开的请求头限制为10 KB。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章