我有一个 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 等)。Stream和TTL的文档。
简而言之,您可以通过在 DynamoDB 中添加带有事件发生时间时间戳的记录(时间戳是 TTL)来注册作业。然后,一旦到达时间戳,DynamoDB 将自动删除该记录并将其放入将触发 Lambda 以启动事件的流中。
请注意,记录中的所有活动(插入/更新/删除)都将在流中可用。所以你可能想在 Lambda 之前做一些条件逻辑来只处理 DELETE 记录。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句