【问题标题】:Check if AWS Lambda is under execution right now using boto3使用 boto3 检查 AWS Lambda 是否正在执行中
【发布时间】:2021-06-20 01:35:03
【问题描述】:

我有一个要求,我需要检查一个特定的 lambda 当前是否正在执行或没有使用另一个 lambda。

我浏览了 boto3 文档,发现 get_function() 方法返回函数的状态,但这不会返回函数状态,它会给出状态,如果 Lambda 创建是 Pending/Inactive/Active 等。

有没有办法可以找出 lambda 的函数状态是否使用另一个 lambda? 感谢您提供任何帮助或指导。

文档链接 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda.html#Lambda.Client.get_function

【问题讨论】:

  • 我不认为这是可能的,也不是一个好主意。如果你真的,真的,真的需要这样的东西,你可能有两个选择。选项 1:在函数的开头和结尾添加一些代码,在外部服务中设置一些“状态”。例如:您可以在 DynamoDB 中设置布尔标志。在函数启动时将其设置为true,在函数执行停止时将其设置为false。选项 #2 是使用 Lambda 扩展 API 来构建类似的东西。但这两种选择都不是很好。您的要求告诉我您的设计缺乏。所以也许重新考虑你的设计。
  • 为什么会有这个要求?你需要完成什么?没有真正的本地方式来告诉 lambda 当前正在执行。 CloudWatch 指标之类的任何东西都会被延迟,因此这取决于您需要多精确。我同意@Jens 的观点,这个要求似乎需要重新考虑。

标签: python-3.x aws-lambda boto3


【解决方案1】:

您可以使用 lambda 函数的 CloudWatch 指标来确定它当前是否正在被调用。 https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics.html#monitoring-metrics-types

【讨论】:

  • 你确定这有效吗?你会怎么做呢?我在那里看不到任何东西可以告诉我某个功能当前是否正在运行。此外,由于 Lambda 可以在几毫秒内运行,我认为纯粹出于延迟原因,这是不可行的。
猜你喜欢
  • 1970-01-01
  • 2022-01-04
  • 2021-06-08
  • 2017-11-02
  • 2023-03-29
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
相关资源
最近更新 更多