问题描述
这是我的用例:
我有一个scheduler
lamdba和一个executor
lambda。
在scheduler
lambda中,我收到一个(time,message)
元组的列表,该列表指示在time
我想通过事件executor
调用message
lambda。 / p>
这是我尝试过的
- 在
scheduler
lambda中,首先清除executor
lambda中的所有触发器。然后为每个(time,message)
元组创建一个EventBridge计划的事件。这有一些缺点...- 从lambda中删除所有触发器非常困难,因为Lambda API不允许您这样做(我相信我必须通过带有适当标记的EventBridge API来做到)
- 每天添加和删除约100个触发器似乎不经济,也不是事件桥的预期用例
- 运行专用的EC2实例以调用lambda函数
- 我很便宜,我不想为一个空闲时间约为99.9%的实例付费。
- 不是无服务器的
是否有一种无服务器方式以非周期性方式触发lambda?
解决方法
有点偏离,但是您可以将dynamodb与ttl一起使用吗?调度程序可以简单地将消息写到表中,并将ttl列的格式设置为在添加到元组时过期。
您可以为执行者lambda订阅DynamoDb事件,并且仅响应已删除的事件,如果您使用New and old images
,则可以从旧映像中检索消息(否则,我相信删除项目后为空)。