在特定时间触发 aws lambda

Fire aws lambda at a specific time

假设我有一个预订系统,我想在用户预订开始前 10 分钟触发 aws lambda 函数以向用户发送电子邮件或消息。我在网上看过,发现的解决方案很少。

AWS Lambda + CloudWatch + DynamoDB:

有人建议将作业添加到 dynamodb 并将 TTL 设置为我想通知用户的时间,然后连接 cloudwatch 以监听删除 dynamodb 上的触发器。我不喜欢这种方法,因为它看起来像是一种 hacky 方法。

触发器

本网站提供休息api,您可以使用它来设置未来的调度工作。这正是我需要的,但他们社交媒体的最后一次更新是在 2018 年。所以可能没有维护。

根据评论,接受的解决方案是让预订系统在预订开始前 10 分钟发送 SNS 消息。然后 SNS 将触发 lambda。

我认为您可以使用 SNS。但是,我想向您展示另一种选择。根据您安排触发器的方式,您还可以启动 Step Function 执行,这将在特定时间点触发您的 Lambda 函数。 Step Function 执行可以 运行 for up to a year and also trigger your Lambda function. An example I can imagine in your case: when someone books something in your system or schedules it using your API, you setup a Step Function execution which will trigger your Lambda function at point X (or "waits" until that point in time) before the booking time. I've answered a similar question here: 也许它是您的替代方案 ;-)