新しいソリューション: Lambda のスケジュールされたジョブ
Werner Vogel は、今夜 (10/08) re:Invent で、AWS Lambda が独自のスケジューラーを持つようになったことを発表しました。
2015 年 10 月 8 日のAWS Lambda リリース ノートを参照してください。
また、AWS Lambda コンソールを使用して定期的にスケジュールに基づいてコードを呼び出すように AWS Lambda を設定することもできます。固定レート (時間数、日数、または週数) を指定するか、cron 式を指定できます。例については、「チュートリアル 5: Lambda 関数を使用してスケジュールされたイベントを処理する (Python)」を参照してください。
古い解決策: AWS Data Pipeline を使用したスケジューリング
AWS Data Pipeline を使用して、特定の期間でタスクをスケジュールできます。ShellCommandActivityを使用してパイプラインを構成する場合、アクションは任意のコマンドにすることができます。
たとえば、AWS CLI コマンドを実行して次のことができます。
- SQSにメッセージを送る
- またはLambda 関数を直接呼び出す ( invoke を参照)
AWS Data Pipeline のスケジュールされたタスクは、AWS コンソール内で (たとえば、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" }
]
}
]
}
制限: 最小スケジュール間隔は 15 分です。
料金: 月額約 1.00 ドル。