运行AWS Lambda函数一段时间

时间:2016-09-07 07:46:00

标签: javascript amazon-web-services aws-sdk aws-lambda

如何在一段时间内运行AWS Lambda函数?基本上我想调用我的Lambda一次,并且只要Lambda函数从另一个API接收特定的JSON响应就运行它。换句话说,它会轮询服务,例如每5分钟左右,并在获得所需信息时停止。

AWS规则不是一个选项,因为我希望该函数仅在被调用时运行。

1 个答案:

答案 0 :(得分:4)

对于AWS Lambda,此模式不是很好,因为它有300秒的执行时间限制。此外,您将在第二次执行时付费,因此即使您的lambda正在运行等待轮询其他资源,您也将支付空闲时间。

您提到不想使用AWS Events Rule,但是以下方法如何:

  1. 调用lambda函数时,检查是否定义了关联的AWS规则。如果没有,请使用API​​创建AWS Events规则。如果已定义,请继续。
  2. 执行其他API的调查,并查找特殊结果。
  3. 如果未找到,请退出lambda,确信AWS规则将再次调用它以进行下一轮调查。
  4. 如果找到,则使用AWS Events Rule API删除AWS规则,然后退出。
  5. 这样,lambda将自己管理规则的生命周期 - 当它想要在一个循环上开始轮询时创建它,并在它不再需要它时删除它。