每1分钟定期调用AWS Lambda

时间:2016-02-08 15:01:43

标签: amazon-web-services aws-lambda

如何定期调用AWS Lambda,特别是每1分钟? 当前功能允许使用5 minute trigger设置Lambdas,但我正在寻找更短的时间间隔。 我想过永远运行Lambda,但看起来自那以后就无法完成 Maximum execution duration per request 300 seconds

4 个答案:

答案 0 :(得分:4)

[删除了之前的回答和更新] 现在,AWS Lambda提供每分钟频率的CloudWatch Events - Schedule作为触发选项。 https://blogs.oracle.com/acaicedo/entry/managing_multiple_screens_in_javafx1

答案 1 :(得分:3)

2015年AWS Reinvent上有一个会议讨论了这个话题,您可以在youtube上观看:https://www.youtube.com/watch?v=FhJxTIq81AU显示如何使用lambda和cloudwatch获得1分钟的频率,没有外部依赖。< / p>

  

您是否需要按计划运行AWS Lambda函数,而不需要   事件触发调用?此会话显示如何使用   Amazon CloudWatch指标和CloudWatch警报,Amazon SNS和Lambda   这样Lambda每分钟都会触发自己 - 没有外部服务   需要!从这里开始,可以安排其他Lambda工作   类似crontab的格式,为您的Lambda提供分钟级别的分辨率   计划任务。在会话期间,我们构建了此功能   从头开始使用Lambda函数,CloudWatch指标和警报,   样本触发器和任务。

我怀疑在某些时候,AWS会在不使用此方法的情况下允许1分钟的时间间隔,但这可能会让您平时过时。

答案 2 :(得分:0)

添加另一种方法/解决方案:

我们可以使用 AWS EventBridge 在特定时间间隔触发 Lambda。

文档 -> https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-run-lambda-schedule.html

YouTube -> https://www.youtube.com/watch?v=uUhEKtLrGvo

答案 3 :(得分:-1)

使用boto模块,你可以让一个lambda函数运行一个invoke语句,调用它自己。以下将每隔约60秒运行一次。当然,请确保为权限分配适当的角色。另外,请注意你的限制。

import boto3,time
def lambda_handler(event, context):
 #do something
 time.sleep(60)
 client = boto3.client('lambda')
 response = client.invoke(FunctionName='YOUR-FUNCTION-NAME')