我正在使用 lambda 函数来服务 REST API。在一个端点中,我将“body size is too long”打印到 cloudwatch 日志中。
我从该函数得到的响应是带有响应正文的状态代码 502 { "message": "Internal server error" }。如果我调用相同的端点但使用过滤器,则响应正文大小为 2.26MB 并且有效。这排除了我达到异步响应正文限制的情况。
出错时的响应正文大小为 5622338 字节 (5.36 MB)。
这就是我计算响应大小的方式(python 2.7):
import urllib2
...
out = {}
resp = urllib2.urlopen(req)
out.statusCode = resp.getcode()
out.body = resp.read()
print("num bytes: " + str(len(bytearray(out.body, 'utf-8'))))
Run Code Online (Sandbox Code Playgroud)
公布的同步调用最大响应正文大小为 6MB。据我了解,我不应该收到错误。 https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html
其他信息:
持续时间:22809.11 毫秒 计费持续时间:22810 毫秒 内存大小:138 MB 最大已用内存:129 MB 初始化持续时间:1322.71 毫秒
任何帮助,将不胜感激。
21 年 4 月 22 日更新
经过进一步研究,我发现如果响应的大小为 1,048,574 字节 (0.999998 MB) 或更大,则 lambda 函数会出错。
如果响应为 …