node.js - NodeJS 脚本出错后,不会再次启动。 AWS Lambda

标签 node.js amazon-web-services aws-lambda alexa-skills-kit requestjs

我在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');

最佳答案

我知道的几件事:

  1. 如果 lambda 调用失败,由于任何原因,它将被再次调用(实际上最多重试 3 次)。 但是,这只适用于异步调用 there are two types of invocations

  2. 您的 lambda 代码所需的任何外部模块都必须包含在您部署到 lambda I have explained this simply in here 的包中。

<小时/>

您可以编写访问 undefined variable 的属性的代码,是的,它会抛出异常,并且如果此调用是异步的,它将再重试两次 - 当然这也会失败。

关于node.js - NodeJS 脚本出错后,不会再次启动。 AWS Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39254778/

相关文章:

javascript - 具有更高级别值的复杂嵌套 sequelize 循环查询

amazon-web-services - 如何将特定日志文件从多容器 Docker Elastic Beanstalk 流式传输到 CloudWatch?

python - 减少用于在 CloudFront 上部署的 python AWS Lambda 大小

node.js - 如何使用 Busboy 访问 Express 4 req.body 对象

javascript - 路由导航在 NodeJs 中不起作用

amazon-web-services - Jenkins AWS Spot 队列插件不会自动扩展 Spot 实例

amazon-web-services - AWS CLI - 使用 jmespath 查询的结果

python - 提高从 s3 读取 lambda 代码的性能

java - AWS Lambda 的 Chrome 二进制文件

mysql - upsert() 如何在多个键上工作? [ Sequelize ]