在没有 运行 服务器的情况下在指定时间调用函数

Calling a function at specified times without a running server

需要在特定时间调用函数而无需启动服务器并且运行一直

特别是,我面临的挑战是我们仅使用 AWS Lambda 和 DynamoDB 来在用户选择的时间向用户发送提醒。这意味着我们必须在用户想要提醒时调用 lambda 函数。

时间会动态变化(取决于每个用户的选择)所以问题是,设置它的好方法是什么?

我们正在考虑在没有办法的情况下设置服务器,但即使我们采用此解决方案,我也缺乏找到设置此服务器的好方法的经验。非常感谢任何建议。

您可以使用 AWS DynamoDB TTL 事件流触发 Lambda 来实现此目的。做法如下

  • 创建一个 DynamoDB table 来存储用户警报。
  • 用户设置闹钟时,计算闹钟时间戳与当前时间戳的差值。
  • 然后将差值与报警信息一起存储为报警记录的TTL值。
  • 配置 DynamoDB 流以在 TTL 超过时触发 Lambda

您可以在计划的事件中调用您的 Lambda 函数:

http://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html

因此,使用类似 cron 的事件设置您的 Lambda 函数,以在您需要的任何时间间隔唤醒,检索您接下来需要发送的警报列表,发送它们,标记已完成的警报,这样它们就不会再次被触发。