Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js AWS Lambda函数使其保持活力_Node.js_Amazon Web Services_Aws Lambda - Fatal编程技术网

Node.js AWS Lambda函数使其保持活力

Node.js AWS Lambda函数使其保持活力,node.js,amazon-web-services,aws-lambda,Node.js,Amazon Web Services,Aws Lambda,我在AWS Lambda上有一个nodejs函数,它在异步并行中运行多个设置超时。有些是即时的,有些可能需要30分钟以上。我遇到的问题是,它永远不会达到30分钟的超时,因为它将处于空闲状态,然后死亡。在lambda函数等待触发其他超时函数时,是否仍有保持其活动状态的方法。lambda函数的生存期最长为300秒 见: 无法将其增加到300秒以上。引入Lambda时,最大执行时间为60秒。它后来被增加到300秒 您需要重新审视您的设计,并检查Lambda是否是正确的解决方案。运行符合Lambda规范

我在AWS Lambda上有一个nodejs函数,它在异步并行中运行多个设置超时。有些是即时的,有些可能需要30分钟以上。我遇到的问题是,它永远不会达到30分钟的超时,因为它将处于空闲状态,然后死亡。在lambda函数等待触发其他超时函数时,是否仍有保持其活动状态的方法。

lambda函数的生存期最长为300秒

见:

无法将其增加到300秒以上。引入Lambda时,最大执行时间为60秒。它后来被增加到300秒


您需要重新审视您的设计,并检查Lambda是否是正确的解决方案。运行符合Lambda规范的按需EC2实例可能是一个解决方案。或者陈述您的问题,我们可以提出解决方案。

除了您不能这样做之外,请看hellov的回答,我认为这是一个错误的设计选择。如果您需要长期服务,直接使用ec2实例将是更好的选择


如果您只需要在30分钟后执行一次操作,那么我将考虑在Lambda代码本身之外的时间生成AWS Lambda事件。换句话说,Lambda用于纯计算,等待其中的任何内容似乎是错误的方法。

正如其他人所提到的,Lambda函数的最大执行时间有一个300秒的硬限制。根据对您的问题的快速概述,我认为Lambda不是正确的解决方案

如果需要处理这些长时间运行的异步任务,则需要在这些不同任务之间添加某种类型的“连接器”。一个可能的解决办法是使用


组件A-->SQS 1-->组件B

Lambda函数执行一些并行任务。在Lambda中执行此操作的最佳方法是将每个任务拆分为单独的Lambda,然后以对应用程序最有意义的方式协调这些任务

这可以通过几种不同的方式完成(最佳方法取决于您的应用程序):

  • AWS Lambda+SNS
  • AWS Lambda+SNS/SQS
  • AWS Lambda+运动
  • AWS Lambda+DynamoDB流

  • 如果您描述这些并行任务是什么,我们可以更好地推荐哪种方法更适合您的用例。我制作了一个快速的nodejs应用程序,它只监听post请求并在后台运行设置超时。没有时间限制。