运行 某段时间的 AWS Lambda 函数

Run AWS Lambda function for a certain period

我如何运行 AWS Lambda 运行一段时间?基本上我想调用我的 Lambda 一次,并且 运行 只要 Lambda 函数收到来自另一个 API 的特定 JSON-响应。换句话说,它会轮询一次服务,例如每 5 分钟左右,并在获得所需信息时停止。

AWS 规则不是一个选项,因为我希望函数仅在调用时 运行。

这种模式对于 AWS Lambda 来说不是很好,因为它有 300 秒的执行时间限制。此外,您按执行的秒数收费,因此即使您的 lambda 运行 正在等待轮询另一个资源,您也会为空闲时间付费。

您提到不想使用 AWS 事件规则,但是以下方法如何:

  1. 调用 lambda 函数时,检查是否定义了关联的 AWS 规则。如果不是,请使用 API 创建一个 AWS 事件规则。如果已定义,则继续。
  2. 对另一个API进行投票,寻找特殊结果。
  3. 如果未找到,请退出 lambda,确信 AWS 规则会在下一次轮询时再次调用它。
  4. 如果找到,则使用AWS Events RuleAPI删除AWS规则,然后退出。

这样,lambda 将自己管理规则的生命周期 - 当它想要开始循环轮询时创建它,并在不再需要它时删除它。