如何每6小时运行一次AWS lambda?

时间:2019-07-10 23:14:53

标签: aws-lambda

我有一个我知道有效的lambda。

我想将其设置为每六个小时运行一次。

最简单的方法是什么

注意

这不是我需要定期执行的操作,因此我很高兴通过浏览器进行操作(尽管cli也很好)

1 个答案:

答案 0 :(得分:3)

这将从计划的时间开始每隔6小时触发您的lambda函数(如果应用了JSON输入)。

enter image description here

步骤1:转到CloudWatch服务

步骤2:单击左侧面板上的Rules,然后单击Create Rule按钮

步骤3:选择ScheduleFixed rate of选项,输入6并选择Hours

第4步:单击Add Target并选择Lambda函数。 (可选)您可以在触发此lambda函数时发送特定的JSON值。您可以通过在Constant (JSON text)字段中插入JSON来实现。

步骤5:单击Configure details并保存此规则


注意:如果您想每6个小时在特定时间(例如12 am、6am、12pm等)触发一次,则必须在第3步中选择Cron Expression

这是您需要使用的表达式:0 0/6 * * ? *


编辑(根据以下评论):
是的,但是这个过程可以做更多的事情。如果您查看右侧的Targets列表(第4步),则会看到SNS,SQS等服务。您可以使用此过程执行任何cron /重复任务。

这是我在其中一个应用程序中使用的-我有一个应用程序可以发送文本消息和电子邮件(使用Pinpoint服务)。这些消息和电子邮件是预先安排的(有时提前几个星期)。因此,我创建了一条消息并将其存储在我的数据库(DynamoDb)中。

然后,我有一个lambda函数,每3分钟触发一次。 Lambda函数转到DynamoDb并获取所有需要发送的预定消息/电子邮件,发送出电子邮件/ SMS并在DynamoDb中将它们标记为“已发送”。 3分钟后,将触发另一个触发,并将永远持续下去。

这也使我能够处理故障-如果3分钟后SMS或电子邮件发送失败,它将再次尝试,因为尚未将其标记为“已发送”。

希望这会有所帮助。