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