AWS Lambda Cryptic Node.js 错误:发生未知应用程序错误

dem*_*n85 13 node.js typescript webpack aws-lambda

我最近将我的 lambda Node.js 运行时从 8.x 更新到 12.x。我升级了很多依赖项并优化了与 webpack 的捆绑和部署过程。但是,我开始注意到 Cloudwatch 中的零星错误,其中包含一条神秘消息“发生未知应用程序错误”,没有堆栈跟踪或任何其他日志,可以为我提供有关函数输入的一些上下文。我没有办法调试这段代码,而且它似乎是一个原生的 AWS 错误,由于某种原因甚至无法调用该函数,否则,日志中会附加一个 JS 堆栈跟踪......

我开始认为存在 Webpack 问题,但我什至禁用了缩小过程,所以我不知道去哪里找。

我的代码是 100% Typescript 使用 Webpack & Babel 编译的。我是否应该尝试从构建过程中删除 Webpack,然后使用普通的 node_modules 文件夹压缩 Typescript 编译器输出而不进行任何捆绑?

有人可以帮帮我吗?此功能正在生产中!

编辑:我看到一堆警告,比如DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.,我知道,但这不应该是这个神秘错误的原因。

小智 5

我最近遇到了这个错误,但我的错误发生在每个其他请求上。第一个请求我得到了良好的响应,第二个(相同的)请求我得到错误“发生未知的应用程序错误”。

我正在使用 NodeJS mysql2 模块,并且在每个请求后没有正确关闭池连接,这迫使第二个请求失败,然后 NodeJS 重置并且以下请求再次正常。