在创建lambda函数时创建触发器“CloudWatch Events - Schedule”
现在,您可以在计划表达式中使用AWS预设,例如rate = 15 min,也可以使用cron表达式。
根据您的要求,Cron Schedule是“0 0 17 1/1 *?*”
既然现在 很容易 要通过HTTP触发lambda函数(例如使用GET或curl),一个简单的解决方案是使用像easycron这样的托管CRON: https://www.easycron.com/ 触发lambda函数运行。
我们遇到了同样的问题,最终在python中运行了Google App Engine上的cron服务,因为这样可以提高CRON作业本身的灵活性和复杂性。
Diksha是基于AWS SWF Trigger的AWS Lambda Scheduler,如建议的那样 AWS团队 。可以使用cron表达式计划作业,还可以指定要运行的时间,开始时间或结束时间。您可以查看预定作业的状态和历史记录。安全性由AWS策略管理。
设置diksha引擎后,可以按以下方式使用cron表达式调度函数:
java -jar diksha-client-0.0.1.jar -lcfg cf1 -cj“jobName | functionName | context | 0 0-59 * * * * | 10”
在这份工作中,每分钟都会运行10次。 AWS SWF将自动触发功能。
细节: https://github.com/milindparikh/diksha
免责声明:我是该项目的贡献者。
在lambda中以特定时间间隔运行查询的简单方法是为lambda函数设置规则。在创建lambda函数之后,转到cloudwatch>>规则>>计划。并定义cron表达式,并在目标部分选择要触发的lambda函数。
我是这样做的:
创建Lambda:
创建CloudWatch警报:ApproximateNumberOfMessagesVisible> 0分1分钟
现在你有一个约15分钟的计时器。
然后其他Lambda函数订阅SNS主题并每15分钟调用一次。
Web控制台的方式非常简单。只需创建一个 CloudWatch lambda的规则并将其添加到lambda中 Triggers 标签。
CloudWatch
Triggers
对于那些需要自动化的人 aws cli , 我们可以
aws cli
的 创建功能 强>
aws lambda create-function --function-name ${FUNCTION-NAME} \ --runtime java8 \ --role 'arn:aws:iam::${Account}:role/${ROLE}' \ --handler org.yourCompany.LambdaApp \ --code '{"S3Bucket":"yourBucket", "S3Key": "RC/yourapp.jar"}' \ --description 'check hive connection' \ --timeout 180 \ --memory-size 384 \ --publish \ --vpc-config '{"SubnetIds": ["subnet-1d2e3435", "subnet-0df4547a"], "SecurityGroupIds": ["sg-cb17b1ae", "sg-0e7ae277"]}' \ --environment Variables={springEnv=dev}
的 创建规则 强>
## create aws events put-rule --name ${ruleName} \ --schedule-expression 'rate(5 minutes)' \ --state ENABLED \ --description 'check hive connection' # grant permission to the Rule to allow it to trigger the function aws lambda add-permission --function-name ${functionName} \ --statement-id 123 \ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com \ --source-arn arn:aws:events:us-east-1:acc:rule/${ruleName} # link rule and function aws events put-targets --rule ${ruleName} \ --targets '[{"Id":"1", "Arn":"arn:aws:lambda:us-east-1:acc:function:RC-checkhive"}]'
您也可以使用cloudWatch事件安排它。创建规则 - >附加目标(lambda)并在您的规则上设置cron / rate wise schedule。