如何解决如何在serverless-next.js部署中修复来自AWS lambda的Access Denied / 503错误
我正在使用无服务器组件(serverless-next.js,而不是插件)部署Next.js应用程序。部署后,我的API路由运行流畅,但是无法访问某些(并非全部)页面和/public
文件夹中的所有内容。
在网络上,对这些资源的请求以503结尾:
content-length: 1019
content-type: text/html
date: Tue,27 Oct 2020 19:55:05 GMT
server: CloudFront
status: 503
via: 1.1 79ba346413d83ce62db11c8d0b05c22d.cloudfront.net (CloudFront)
x-amz-cf-id: RalFtcB6W4pm1_eTgzr0Y9LWCR-uwfqgW2alSgX_X72YVlUxlEkrKw==
x-amz-cf-pop: PRG50-C1
x-cache: LambdaExecutionError from cloudfront
我将错误跟踪到了下一个CloudFront分发的默认Lambda @ Edge ,在其中我可以在CloudWatch日志中看到每个呼叫的记录:
{
"errorType": "AccessDenied","errorMessage": "Access Denied","Code": "AccessDenied","RequestId": "75B8CCC0B1F960A7","HostId": "92cygvWjn3xLwT0PChJPc56ExzUFBDFTHyjLXQ/BWbT7pCVMb3I2ww15+Gzs2fSuXjHEPSfUIdg=","name": "AccessDenied","$fault": "client","$metadata": {
"httpStatusCode": 403,"httpHeaders": {
"x-amz-request-id": "75B8CCC0B1F960A7","x-amz-id-2": "92cygvWjn3xLwT0PChJPc56ExzUFBDFTHyjLXQ/BWbT7pCVMb3I2ww15+Gzs2fSuXjHEPSfUIdg=","content-type": "application/xml","transfer-encoding": "chunked","date": "Tue,27 Oct 2020 19:54:59 GMT","server": "AmazonS3"
},"attempts": 1,"totalRetryDelay": 0
},"stack": [
"AccessDenied: Access Denied"," at deserializeAws_restXmlGetObjectCommandError (/var/task/index.js:14166:41)"," at processTicksAndRejections (internal/process/task_queues.js:97:5)"
]
}
我检查了原始S3存储桶,所有资源都在那里。我试图删除完整的部署,但没有进行干净的部署。据我了解,问题出在S3权限上,我授予了lambda调用对S3的完全访问权限的策略,但问题仍然存在。
任何帮助您调试此功能的人都将得到进一步的赞赏。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。