Amazon web services AWS:如果DynamoDB表格行在过去30分钟内未更新,则触发事件
我必须建立一个AWS流程的管理层。 为了简单起见,我有一些客户端通过SOAP请求向部署在Elastic Beanstalk NodeJS应用程序上的SOAP服务器发送心跳信号,比如说每5分钟一次。每次接收到心跳信号时,我都会通过更新表上的字段将上次接收到心跳信号的时间存储在DynamoDB表中 现在我需要创建一个进程,如果我在过去30分钟内没有收到心跳信号,它将执行一些操作(更新另一个表、调用Lambda函数等)。我现在不知道我将拥有多少客户端,但它们将随着时间的推移而不断增长,并全天候连接到我的服务器 我希望在表中的特定行未更新的30分钟后,会触发Lambda函数(或在SNS主题上发布消息)之类的事件,但我不知道如何让最后一部分正常工作。此事件应检查文档中的每一行 你会怎么做Amazon web services AWS:如果DynamoDB表格行在过去30分钟内未更新,则触发事件,amazon-web-services,triggers,amazon-dynamodb,aws-lambda,Amazon Web Services,Triggers,Amazon Dynamodb,Aws Lambda,我必须建立一个AWS流程的管理层。 为了简单起见,我有一些客户端通过SOAP请求向部署在Elastic Beanstalk NodeJS应用程序上的SOAP服务器发送心跳信号,比如说每5分钟一次。每次接收到心跳信号时,我都会通过更新表上的字段将上次接收到心跳信号的时间存储在DynamoDB表中 现在我需要创建一个进程,如果我在过去30分钟内没有收到心跳信号,它将执行一些操作(更新另一个表、调用Lambda函数等)。我现在不知道我将拥有多少客户端,但它们将随着时间的推移而不断增长,并全天候连接到我
谢谢大家! 是否需要在所有客户端上每隔30分钟签入一次:这可以通过服务器上的cron作业来完成,该服务器执行一条SQL语句,其中Date()-Timestamp>30分钟(仅说明逻辑),DynamoDB格式仅更改语法 或者,您需要在上次某个客户向您发送邮件30分钟后进行检查。 在这种情况下,您的cron将每分钟运行一次,逻辑与上面相同 如果需要在计划中使用lambda,请参阅此链接 希望这有帮助
如果您需要语法方面的进一步帮助,我随时准备提供帮助您可以将DynamoDB与TTL、DynamoDB Streams和AWS Lambda一起使用。不需要
cron
创建新行或更新现有行时,请在将来将该行的TTL设置为30分钟
当达到30分钟时,它将启动DynamoDB流,您可以将其用作Lambda函数的触发器
然后,此Lambda函数可以执行您想要执行的自定义处理(即更新另一个表、调用Lambda函数等)
请注意,原始DynamoDB行将在其TTL过期时被删除。如果需要保留该记录,可以让Lambda函数重新创建该记录,并在将来将新的TTL设置为另一个30分钟
参考资料: