Mat*_*gna 2 triggers amazon-web-services amazon-dynamodb aws-lambda
我必须在 AWS 流程上设置管理。为简单起见,我有一些客户端向我发送心跳,假设每 5 分钟一次,通过 SOAP 请求发送到部署在 Elastic Beanstalk NodeJS 应用程序上的 SOAP 服务器。每次收到心跳时,我都会通过更新表上的字段将上次收到的心跳存储在 DynamoDB 表中。
我现在需要创建一个进程,如果我在过去 30 分钟内没有收到心跳,则执行某些操作(更新另一个表、调用 Lambda 函数等)。我现在不知道我将拥有多少个客户端,但它们会随着时间的推移而自然增长,并 24/7 全天候连接到我的服务器。
我希望在表中的特定行未更新的 30 分钟后触发 Lambda 函数(或在 SNS 主题上发布消息)之类的事件,但我不知道如何获得最后一部分上班。此事件应该检查文档中的每一行。
你会怎么做?
谢谢!
为此,您可以将 DynamoDB 与 TTL、DynamoDB Streams 和 AWS Lambda 结合使用。不需要cron。
当您创建新行或更新现有行时,将该行的 TTL 设置为未来 30 分钟。
当达到 30 分钟时,它将启动一个 DynamoDB 流,您可以将其用作 Lambda 函数的触发器。
然后,此 Lambda 函数可以执行您想要执行的自定义处理(即更新另一个表、调用 Lambda 函数等)。
请注意,原始 DynamoDB 行将在其 TTL 到期时被删除。如果您需要保留该记录,您可以让 Lambda 函数重新创建它,并在未来将新的 TTL 设置为另一个 30 分钟。
参考: