Aws lambda AWS Lambda next.js-无法将2MB文件发布到api路由

Aws lambda AWS Lambda next.js-无法将2MB文件发布到api路由,aws-lambda,next.js,serverless,Aws Lambda,Next.js,Serverless,我使用serverless-next.js包将我的next.js应用程序部署到aws。 当我试图将一个大文件(~1MB)发布到api路由时,我得到了一个503响应代码。 全文内容如下: <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request co

我使用
serverless-next.js
包将我的
next.js
应用程序部署到
aws
。 当我试图将一个大文件(~1MB)发布到
api
路由时,我得到了一个
503
响应代码。 全文内容如下:

<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>503 ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
The Lambda function associated with the CloudFront distribution is invalid or doesn't have the required permissions.
We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
<BR clear="all">
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID: X
</PRE>
<ADDRESS>
</ADDRESS>
</BODY></HTML>

错误:无法满足请求
503错误
这项要求未能得到满足。

与CloudFront发行版关联的Lambda函数无效或没有所需的权限。 目前无法连接到此应用或网站的服务器。可能存在过多流量或配置错误。请稍后重试,或与应用程序或网站所有者联系。
如果您通过CloudFront向客户提供内容,您可以通过查看CloudFront文档找到故障排除步骤并帮助防止此错误。

由cloudfront生成(cloudfront) 请求ID:X
CloudWatch日志显示:

{
    "errorType": "Error",
    "errorMessage": "Cannot call write after a stream was destroyed",
    "code": "ERR_STREAM_DESTROYED",
    "stack": [
        "Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed",
        "    at WriteStream._write (internal/fs/streams.js:379:33)",
        "    at WriteStream.<anonymous> (internal/fs/streams.js:375:12)",
        "    at Object.onceWrapper (events.js:422:26)",
        "    at WriteStream.emit (events.js:327:22)",
        "    at WriteStream.EventEmitter.emit (domain.js:483:12)",
        "    at internal/fs/streams.js:366:10",
        "    at FSReqCallback.oncomplete (fs.js:156:23)"
    ]
}
{
“errorType”:“Error”,
“errorMessage”:“流销毁后无法调用write”,
“代码”:“错误流被破坏”,
“堆栈”:[
“Error[ERR\u STREAM\u destromed]:在流被销毁后无法调用write”,
“at WriteStream.\u write(internal/fs/streams.js:379:33)”,
“at WriteStream.(内部/fs/streams.js:375:12)”,
“在Object.onceWrapper(events.js:422:26)”中,
“在WriteStream.emit(events.js:327:22)”中,
“在WriteStream.EventEmitter.emit(domain.js:483:12)”中,
“在内部/fs/streams.js:366:10”,
“在FSReqCallback.oncomplete上(fs.js:156:23)”
]
}
我正在使用强大解析请求的主体。它可以处理较小的文件大小

我能做什么<代码>1MB不算作大文件大小

在开发中,即使是10MB的文件,一切都可以正常工作,但在AWS中却不行lambda@edge这里写着:


如果以异步模式上载,则请求+响应不能大于256 KB

因为serverless只是在lambda函数中创建路由。如果你想上传这个文件,你可以使用带有预签名url的S3 bucket。
这样,您就不需要将文件上载到lambda函数。

目的是上载图像。流程是客户端将文件发送到MyAPI路由,api路由使用aws sdk上传到S3。在开发中,即使是10MB的文件,一切都可以正常工作,但在aws中却不行lambda@edge.That工作流在无服务器环境下不好。您需要与云中的数据进行更少的交互。检查教程好的,谢谢,我会看的!但是为什么cloudwatch日志中的错误是“ERR_STREAM_destromed”?我编辑了我的答案,我希望回答您的问题“如果以异步模式上载,您的请求+响应不能超过256 KB”,但我成功上载了大小为900KB的文件。你所说的“异步模式”是什么意思?