以编程方式安排一次 AWS Lambda 执行

Programmatically schedule an AWS Lambda for one time execution

我有两个 AWS-Lamdbda 函数,我希望 Lambda A 确定某个时间点,例如 2022 年 5 月 4 日 10:00。然后我希望在这个特定时间点将 Lambda B 安排到 运行。

我可能能够通过以编程方式使用 Lambda A 创建 AWS eventbrigde 规则并使用 cron 模式来匹配我的时间点来实现这一点。在 Lambda B 内部,我需要删除该规则,因为它是一次性使用的。

你们中有人能想出一种更优雅的方法来实现这一点吗?

谢谢你的智慧!

编辑:

我的时间点是动态的。我调用一个public API 来找到Lambda B 到运行 的点,所以我不能直接使用EventBridge。我计划每天 运行 宁 Lambda A 一次,看看是否需要新的 Lambda B 运行。

这里还有一些选项可以在任意时间点安排 Lambda 运行:

步进函数

A three-state Step Function orchestrates the two Lambdas. Lambda A obtains and outputs a timestamp. A Wait State 等待时间戳过去。然后 Lambda B 运行s.

这种方法是精确的。 N.B。 Standard Workflow 处决的持续时间长达一年,因此它们可以适应长时间的等待。

DynamoDB 流 + TTL

创建启用 TTL field and Dynamo DB Streams 的 DynamoDB table。将 Lambda B 设置为流处理器。 Lambda A 向 table 写入一条记录,时间戳为 TTL。在 TTL 时间戳过后不久,DynamoDB 将触发 Lambda B。

此方法无法提供第一种方法的精度,但如果您有大量事件,成本会更低。