Nat*_*n H 134 amazon-web-services cron-task aws-lambda
亚马逊宣布推出AWS Lambda(http://aws.amazon.com/lambda/).
产品描述包括:
计划任务
AWS Lambda函数可以由外部事件计时器触发,因此可以在定期维护时间或非高峰时间运行功能.例如,您可以触发AWS Lambda函数在非繁忙时段执行夜间归档清理.
当我读到这篇文章时,我明白我终于有办法不断地做"类似cron"的任务了.我想每天下午5点运行一个特定的查询.
但是我没有在文档中的任何地方找到它.他们只提到了programatical事件或来自其他AWS服务的事件的触发器.
我误会了吗?或者有人能指出我的文档?
Ant*_*ace 148
正如此AWS博客文章中所述,现在支持调度作为名为" CloudWatch Events - Schedule " 的事件源类型(也称为触发器),并且可以表示为rate或cron表达式.
导航到"配置触发器"创建步骤,并指定"CloudWatch事件 - 计划"触发器.示例配置如下:
导航到lambda的"触发器"选项卡,选择"添加触发器",然后指定"CloudWatch事件 - 计划"触发器.我有一个带有SNS触发器的现有lambda的示例屏幕截图:
加载后,配置此触发器的UI与上面"将计划事件添加到新lambda"部分中的屏幕截图相同.
对于您的示例案例,您将要使用cron()而不是rate().lambda中的Cron表达式需要所有字段并以UTC表示.因此,要在每天下午5点(UTC)运行一个函数,请使用以下cron表达式:
cron(0 17 * * ? *)
Run Code Online (Sandbox Code Playgroud)
lambda-canary,可以在AWS控制台创建函数期间选择该表达式.sha*_*adi 17
从这篇文章的时间开始,似乎又提出了另一个解决方案:使用不可靠的城镇时钟(UTC)安排重复的AWS Lambda调用,其中作者建议订阅SNS主题不可靠的城镇时钟.我既没使用SWF也没使用SNS,但在我看来,SNS解决方案更简单.这是文章的摘录
不可靠的城镇时钟(UTC)
不可靠城镇时钟(UTC)是一个新的,免费的公共SNS主题(亚马逊简单通知服务),每四分钟向所有订户广播一个"编钟"消息.它可以将钟声发送到AWS Lambda函数,SQS队列和电子邮件地址.
您可以使用chime属性每15分钟运行一次代码,或者每小时运行一次代码(例如,当分钟=="00"时)或每天运行一次(例如,当小时=="00"和分钟= ="00")或任何其他一系列间隔.
您甚至可以订阅一个只想在将来的特定时间运行一次的函数:让函数忽略所有调用,直到它想要的时间之后.什么时候,它可以执行其工作,然后取消订阅自己的SNS主题.
将您的代码连接到Unreliable Town Clock是快速而简单的.无需申请流程或帐户创建
Yve*_* M. 15
Werner Vogel今晚(10/08)在re:Invent上宣布AWS Lambda现在拥有自己的调度程序.
您还可以使用AWS Lambda控制台设置AWS Lambda以定期调度您的代码.您可以指定固定费率(小时数,天数或周数),也可以指定cron表达式.有关示例,请参见演练5:使用Lambda函数处理预定事件(Python).
您可以使用AWS Data Pipeline 计划给定期间的任务.使用ShellCommandActivity配置管道时,该操作可以是任何命令.
例如,您可以运行AWS CLI命令:
您可以直接在AWS控制台中轻松创建AWS Data Pipeline计划任务(例如,使用AWS CLI命令):
您还可以使用API来定义您的日程安排:
{
"pipelineId": "df-0937003356ZJEXAMPLE",
"pipelineObjects": [
{
"id": "Schedule",
"name": "Schedule",
"fields": [
{ "key": "startDateTime", "stringValue": "2012-12-12T00:00:00" },
{ "key": "type", "stringValue": "Schedule" },
{ "key": "period", "stringValue": "1 hour" },
{ "key": "endDateTime", "stringValue": "2012-12-21T18:00:00" }
]
}, {
"id": "DoSomething",
"name": "DoSomething",
"fields": [
{ "key": "type", "stringValue": "ShellCommandActivity" },
{ "key": "command", "stringValue": "echo hello" },
{ "key": "schedule", "refValue": "Schedule" }
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我是这样做的:
创建Lambda:
创建CloudWatch警报:ApproximateNumberOfMessagesVisible> 0 1分钟
现在你有一个约15分钟的计时器.
然后其他Lambda函数订阅SNS主题并每15分钟调用一次.
| 归档时间: |
|
| 查看次数: |
51127 次 |
| 最近记录: |