1. ホーム
  2. amazon-web-services

[解決済み] AWS Lambdaのスケジューリングされたタスク

2022-04-24 20:36:27

質問内容

アマゾンがAWS Lambda(ラムダ)を発表しました。 http://aws.amazon.com/lambda/ ).

商品説明には

スケジュールされたタスク

AWS Lambdaのファンクションは、外部イベントタイマーでトリガーすることができますので 定期的に行われるメンテナンスの時間帯に、ファンクションを実行することができます。 非ピーク時 例えば、AWS Lambda関数をトリガーして、次のようなことができます。 は、混雑していない時間帯に夜間アーカイブのクリーンアップを実行します。

これを読んで、ようやくクーロンのようなタスクを一貫して実行できるようになったと理解しました。例えば、毎日午後5時に特定のクエリを実行したいのです。

しかし、このようなことはドキュメントのどこにも書いてありません。彼らは、プログラム上のイベントや他のAWSサービスからのイベントに対するトリガーについてだけ言及しています。

私が誤解していたのでしょうか?または、どなたかドキュメントを紹介していただけませんか?

解決方法は?

2015年10月8日、スケジュールイベントのネイティブサポートが追加されました。

この中で発表されているように AWSのブログ記事 として、スケジューリングがサポートされるようになりました。 イベントソースタイプ (トリガーとも呼ばれる)名称は " です。 CloudWatchのイベント - スケジュール "で、レートまたはcron式で表現することができます。

新しいlambdaにScheduled Eventを追加する

作成ステップの'Configure triggers'に移動し、'CloudWatch Event - Schedule'トリガーを指定します。以下、設定例。

既存のlambdaにスケジュールされたイベントを追加する

ラムダの'Triggers'タブに移動し、'Add Trigger'を選択し、'CloudWatch Event - Schedule'トリガーを指定します。SNSトリガーを持つ既存のlambdaがある場合のスクリーンショット例です。

一度ロードされると、このトリガーを設定するUIは、上記の"Add Scheduled Event to a new lambda"セクションのスクリーンショットと同じになります。

ディスカッション

この例では、次のようになります。 cron() の代わりに rate() . lambdaのCron式は、すべてのフィールドを必要とし、UTCで表現されます。したがって、毎日午後5時(UTC)に関数を実行するには、次のcron式を使用します。

cron(0 17 * * ? *)

その他のリソース

注意事項

  • このイベントタイプの名前は、この機能が最初にリリースされてから "Scheduled Event" から "CloudWatch Events - Schedule" に変更されました。
  • この機能のリリース以前は、この問題の推奨される解決策(当たり AWS Lambda入門"42分50秒 ) は SWFを使用してタイマーを作成する または、外部アプリケーションでタイマーを作成することです。
  • LambdaのUIは、予定されているイベントのブログ記事が出た後にオーバーホールされ、その中のスクリーンショットはもはや正確ではありません。最新のリビジョンについては、2017年3月10日に私が更新した上記のスクリーンショットを参照してください。