【问题标题】:Is there any way to check if a lambda function has been idle for a given amount of time?有什么方法可以检查 lambda 函数是否在给定时间内空闲?
【发布时间】:2020-11-17 14:30:50
【问题描述】:

我有一个用例,我应该根据给定 lambda 函数的空闲时间执行一段代码,我的意思是如果给定函数已经空闲 5 分钟,我的一段代码应该运行。 有没有办法检查 lambda 状态/状态?

【问题讨论】:

  • 您如何定义 AWS Lambda 函数的“空闲时间”?为什么函数“空闲”?为什么有人要求你这样做(也就是说,他们想要实现的更大用例是什么)?
  • 我有一个订阅了 SNS 主题的 lambda 函数,一旦 lambda 函数完成消耗所有 SNS 事件,我需要降级该 lambda 函数的提供并发性。这就是为什么我想知道是否有任何方法知道lambada 函数已经空闲了一段时间,这意味着它没有处理任何SNS 事件。希望这能更好地解释我的用例。
  • 请注意,AWS Lambda 函数不会“使用 SNS 事件”。相反,当向 Amazon SNS 主题发送消息并且 Lambda 函数订阅了该主题时,Amazon SNS 将使用该消息触发 Lambda 函数。因此,Lambda 函数仅在向 SNS 主题发送消息时运行,然后在处理完消息后停止运行。 Lambda 函数不会坐在那里等待使用消息。

标签: aws-lambda amazon-cloudwatch


【解决方案1】:

我假设您希望避免 lambda 冷启动,请利用预置并发,这将使 lambda 与并发设置的数量一起运行 https://aws.amazon.com/blogs/aws/new-provisioned-concurrency-for-lambda-functions/

如果您不是这个意思,那么我将空闲假设为 lambda“未处理任何请求”,如果是,则使用 cloudwatch 指标/警报来监控一段时间内的调用次数,然后在其操作中执行任何操作

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-19
  • 1970-01-01
  • 1970-01-01
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 2019-06-24
相关资源
最近更新 更多