如何使用 AWS DynamoDB 和 AWS SQS 创建作业队列?

n00b

我有一个 lambda 函数,我想根据作业参数以特定的时间间隔触发它。例如,我希望能够添加像这样的工作参数

{"run_at": "2018-06-08-10-10-30", "params": {"metadata":"xyz"}}

所以我希望我的 lambda 函数run_at在那个确切的时间被触发,并将params作为事件传递给我的 lambda 函数。

那可能吗?

波波伊·梅内内

是的,有可能。您可以使用DynamoDB的Time-To-Live(时间戳列设置为TTL),其中表中的记录在过期时将被删除,被删除的记录将出现在DynamoDB流中一旦它出现在流中,您就可以设置一个 Lambda 来触发以进行进一步处理(在 SQS 中排队、发布到 SNS 等)。StreamTTL的文档

简而言之,您可以通过在 DynamoDB 中添加带有事件发生时间时间戳的记录(时间戳是 TTL)来注册作业。然后,一旦到达时间戳,DynamoDB 将自动删除该记录并将其放入将触发 Lambda 以启动事件的流中。

请注意,记录中的所有活动(插入/更新/删除)都将在流中可用。所以你可能想在 Lambda 之前做一些条件逻辑来只处理 DELETE 记录。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章