在执行计划任务前,检查 AWS Lambda 函数是否已在运行。

3

我有一个定期运行的AWS Lambda函数,每15分钟运行一次。在再次调用之前,我想要验证它是否正在运行。

有没有任何可以检查这个的AWS功能?或者我需要开发另一个Lambda来验证?


1
将并发设置为1;如果在其仍在运行时尝试调用,则会出现错误。 - hephalump
将并发设置为1对我来说有效,谢谢! - Sergio RBJ
太好了!我已将其添加为答案。 - hephalump
2个回答

1
根据 AWS 文档 这里,您可以设置并发性以保证函数达到特定的并发级别,或者相反,您可以使用并发性来限制最大并发调用数量。
要实现您的目标,只需将并发性设置为 1,如果有另一个执行正在进行中,您的调用将抛出异常。

0

Lambda函数的最大执行时间为15分钟(请注意,这不是默认值,而是3秒)。如果您按计划每15分钟运行一次Lambda函数,则上一个实例已经完成或超时,因此答案是否定的,上一个Lambda函数实例没有在运行。


我的函数是递归的,它每15分钟激活一次,但在完成后会再次运行,因此我必须检查它是否正在运行。 - Sergio RBJ
我不建议使用递归Lambda函数。AWS也不建议。https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html - Matus Dubrava
@SergioRBJ,“我的函数是递归的”是什么意思?它仅仅是链式的,还是等待递归调用完成后再继续运行? - John Rotenstein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接