amazon-web-services - 在特定时间触发 aws lambda
问题描述
假设我有一个预订系统,我想在预订开始前 10 分钟触发 aws lambda 函数向用户发送电子邮件或消息。我在网上查了一下,发现很少有解决方案。
AWS Lambda + CloudWatch + DynamoDB:
有人建议将作业添加到 dynamodb 并将 TTL 设置为我想通知用户的时间,然后连接 cloudwatch 以侦听以删除 dynamodb 上的触发器。我不喜欢这种方法,因为它似乎是一种 hacky 方法。
触发
该网站提供了一个 rest api,您可以使用它来设置将来的调度作业。这正是我需要的,但他们社交媒体上的最后一次更新是在 2018 年。所以可能没有维护。
解决方案
我相信在您的情况下使用 SNS 很好。但是,我想向您展示另一种选择。根据您安排触发器的方式,您还可以启动Step Function 执行,这将在特定点触发您的 Lambda 函数。Step Function 执行最多可以运行一年,并且还会触发您的 Lambda 函数。我可以在您的情况下想象一个示例:当有人在您的系统中预订某些东西或使用您的 API 安排它时,您设置了一个 Step Function 执行,它将在 X 点触发您的 Lambda 函数(或“等待”直到那个时间点)之前预订时间。我在这里回答了一个类似的问题:https ://stackoverflow.com/a/46935065/4831297也许它是你的替代方案;-)
推荐阅读
- .net - Docker https问题无法启动Kestrel
- javascript - 用 JS 创建可填充的 PDF
- python - 将大型数据库表读入 Dask 数据框
- python - PyQt6:在高度缩小后重绘QTextEdit的底部边框?
- masstransit - MassTransit 消费者未确认某些消息
- javascript - wp php中的linkedin应用按钮在控制台中返回错误
- python-3.x - Visual Studio Code 2019 python pandas最大记录?
- openlayers - OpenLayers 中的高性能线梯度
- java - Java方法多次抛出异常
- laravel - 辛烷值:centos 8 上的重新加载不反映更改