如何在一段时间内运行AWS Lambda函数?基本上,我想调用Lambda一次,只要Lambda函数从另一个API接收到特定的json响应,就运行它。换句话说,它将轮询一个服务,例如每5分钟左右,并在获得所需信息时停止。
AWS规则不是一个选项,因为我希望函数只在调用时运行。
这个模式对于AWS Lambda来说不是一个很好的模式,因为它的执行时间限制是300秒。此外,您按执行的秒计费,所以即使您的lambda正在运行等待轮询另一个资源,您也将为空闲时间付费。
你提到不想使用AWS事件规则,那么下面的方法呢:
- 当调用lambda函数时,检查是否定义了关联的AWS规则。如果没有,请使用API创建AWS事件规则。如果已定义,则继续
- 对其他API进行轮询,并查找特殊的结果
- 如果没有找到,退出lambda,确信AWS规则会在下一次轮询时再次调用它。
- 如果找到,使用AWS Events Rule API删除AWS规则,然后退出。
这样,lambda将自己管理规则的生命周期——当它想开始轮询一个循环时创建它,当它不再需要它时删除它。