【发布时间】:2020-06-18 01:00:26
【问题描述】:
执行 AWS Lambda 时出现 NodeJS 弃用错误(使用节点 12.x):
[DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
找不到生成它的模块/代码段。似乎没有任何内容引用_headers or _headerNames。
在 Node 中应该可以将参数或环境变量设置为 explain here 到 --trace-deprecation 和/或 --trace-warnings 和/或 --throw-deprecation。在 lambda 的 AWS 控制台环境变量中设置一个或多个这些值时,不会显示额外信息。
为 AWS Lambda 设置此运行时参数的方法是什么?有没有办法捕获堆栈跟踪以了解已弃用的错误发生在哪里?
【问题讨论】:
-
如果不查看 lambda 函数中的代码,很难说什么
-
嗨@riga,看起来您的依赖项之一正在使用已弃用的
_headers(nodejs.org/api/…),您可以发布代码吗? -
@pepo 我知道这个,我的问题是找到哪一个。
-
嗨@riga,好的。要启用跟踪,您可以使用
NODE_OPTIONSenv 变量,如NODE_OPTIONS='--trace-deprecation''(nodejs.org/api/cli.html#cli_node_options_options) -
嗨@riga,我刚刚做了一个快速测试(gist.github.com/pepoviola/aaba2d7af4d1b443b37e109f2702e358)设置环境变量并按预期工作。此外,您可以使用
process.on('warning', warning => console.log( warning.stack ) );来控制台记录堆栈。
标签: node.js amazon-web-services aws-lambda serverless-framework