我在nodejs4.x运行时有一个lambda函数。如果我的脚本由于错误而停止执行,假设我尝试获取 undefined object 的 .length
,那么我将无法再次启动脚本。它甚至不像脚本运行并遇到相同的错误,脚本不运行。 lambda 处理函数永远不会被第二次调用。
此 lambda 函数是 Amazon Alexa 的终端 Node 。当我重新上传代码(一个 zip 文件)时,系统会再次工作。
这是nodejs的一些行为吗?脚本是否过早结束而损坏了文件,因此无法再次启动?
当服务器遇到错误时,我收到此消息进程在完成请求之前退出
然后后续请求达到超时限制。
重要编辑 我已向 NPM 请求指出了该问题。该模块未完成加载,即。
console.log('i see this message');
var request = require('request');
console.log('this never happens');
最佳答案
我知道的几件事:
如果 lambda 调用失败,由于任何原因,它将被再次调用(实际上最多重试 3 次)。 但是,这只适用于异步调用 there are two types of invocations 。
您的 lambda 代码所需的任何外部模块都必须包含在您部署到 lambda I have explained this simply in here 的包中。
您可以编写访问 undefined variable 的属性的代码,是的,它会抛出异常,并且如果此调用是异步的,它将再重试两次 - 当然这也会失败。
关于node.js - NodeJS 脚本出错后,不会再次启动。 AWS Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39254778/