【发布时间】:2021-06-20 01:35:03
【问题描述】:
我有一个要求,我需要检查一个特定的 lambda 当前是否正在执行或没有使用另一个 lambda。
我浏览了 boto3 文档,发现 get_function() 方法返回函数的状态,但这不会返回函数状态,它会给出状态,如果 Lambda 创建是 Pending/Inactive/Active 等。
有没有办法可以找出 lambda 的函数状态是否使用另一个 lambda? 感谢您提供任何帮助或指导。
【问题讨论】:
-
我不认为这是可能的,也不是一个好主意。如果你真的,真的,真的需要这样的东西,你可能有两个选择。选项 1:在函数的开头和结尾添加一些代码,在外部服务中设置一些“状态”。例如:您可以在 DynamoDB 中设置布尔标志。在函数启动时将其设置为
true,在函数执行停止时将其设置为false。选项 #2 是使用 Lambda 扩展 API 来构建类似的东西。但这两种选择都不是很好。您的要求告诉我您的设计缺乏。所以也许重新考虑你的设计。 -
为什么会有这个要求?你需要完成什么?没有真正的本地方式来告诉 lambda 当前正在执行。 CloudWatch 指标之类的任何东西都会被延迟,因此这取决于您需要多精确。我同意@Jens 的观点,这个要求似乎需要重新考虑。
标签: python-3.x aws-lambda boto3