node.js - 为什么无服务器 Node 8 函数在本地可以运行,但在 AWS 上却失败且没有错误消息?

标签 node.js aws-lambda aws-api-gateway serverless-framework

我正在编写一个要使用 Node 8 部署到 AWS Lambda 的函数(它是 OSS,请查看: https://github.com/hacksecure/utility-serverless-functions )。它在本地(npm run dev)上完美运行,但在部署(npm run deploy)时,当我发出 GET 请求时,我得到的只是内部服务器错误。 Cloudwatch 日志除了显示请求开始、结束和计费规范的日志之外没有任何内容。该问题看起来与此类似,但将我的无服务器版本固定到 1.25.x(如您在 package.json 中看到的)没有任何作用。我没有全局安装无服务器,所以我知道不存在奇怪的版本冲突。

除了最简单的基于 Promise 的 lambda 函数之外,我找不到任何好的示例,因此我的代码很可能存在一些 serverless-offline 无法检测到的缺陷。我的最佳猜测是,此问题要么与我的本地 Node 版本(高于 AWS 使用的 Node 8 LTS)有关,要么与我的 AWS CloudFormation 堆栈中离线无法模拟的内容有关。由于我认为由较旧的 Node 版本引起的错误会记录一些内容,因此我认为该错误与涉及 API Gateway 的内容有关。这纯粹是猜测,我没有很好的方法来验证这一点。

最佳答案

问题在于,AWS 不会在响应上自动调用 JSON.stringify(),但离线无服务器插件会自动调用。我仍然不确定为什么这会导致无日志错误,但它确实修复了它。

关于node.js - 为什么无服务器 Node 8 函数在本地可以运行,但在 AWS 上却失败且没有错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50708598/

相关文章:

node.js - 错误: Request body larger than maxBodyLength limit when sending base64 post request Axios

javascript - 为什么setTimeout在指定时间后没有触发

node.js - 仅在 mongoose 中的填充数组中删除文档 objectid

python - 使用 AWS Lambda 从 S3 读取 csv 并插入到 MySQL 表中

aws-lambda - AWS Cognito 与 ADFS : Issuer doesn't match providerName

amazon-web-services - AWS Api网关+ Lambda +自定义域(Route53)缺少身份验证 token 问题

node.js - 如何以 root 身份在 Ubuntu Server 上运行 Node Puppeteer 应用程序

javascript - AWS CLI 无效的 JSON 错误 - 需要用双引号引起来的属性名称

amazon-web-services - 无法在 AWS Lambda 中添加同一方法的多个 API 端点

c# - 如何在 C# 中使用 AWS Lambda 发送响应卡