我有一个我知道有效的lambda。
我想将其设置为每六个小时运行一次。
最简单的方法是什么
这不是我需要定期执行的操作,因此我很高兴通过浏览器进行操作(尽管cli也很好)
答案 0 :(得分:3)
这将从计划的时间开始每隔6小时触发您的lambda函数(如果应用了JSON输入)。
步骤1:转到CloudWatch
服务
步骤2:单击左侧面板上的Rules
,然后单击Create Rule
按钮
步骤3:选择Schedule
和Fixed 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或电子邮件发送失败,它将再次尝试,因为尚未将其标记为“已发送”。
希望这会有所帮助。