[解決済み] AWS Lambdaのスケジューリングされたタスク
質問内容
アマゾンが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 * * ? *)
その他のリソース
- AWSドキュメント - RateまたはCronを使用したスケジュール式
- AWSドキュメント - AWS CLIを使用してスケジュール上でAWS Lambda関数を実行する
-
AWS Documentation - Tutorial: AWS LambdaとScheduled Eventsの使用方法
-
AWS が提供するサンプル "blueprint" では、次のような cron 式を使用しています。
lambda-canary
関数作成時にAWSコンソールから選択することができます。 - このチュートリアルでは、このブループリントの構成について説明します。
-
AWS が提供するサンプル "blueprint" では、次のような cron 式を使用しています。
注意事項
- このイベントタイプの名前は、この機能が最初にリリースされてから "Scheduled Event" から "CloudWatch Events - Schedule" に変更されました。
- この機能のリリース以前は、この問題の推奨される解決策(当たり AWS Lambda入門"42分50秒 ) は SWFを使用してタイマーを作成する または、外部アプリケーションでタイマーを作成することです。
- LambdaのUIは、予定されているイベントのブログ記事が出た後にオーバーホールされ、その中のスクリーンショットはもはや正確ではありません。最新のリビジョンについては、2017年3月10日に私が更新した上記のスクリーンショットを参照してください。
関連
-
[解決済み】aws cli: update-kubeconfig が期待通りに動作しない。
-
[解決済み】パラメータScheduleExpressionが有効でない。
-
[解決済み] エラー: networkMode 'awsvpc' が指定された場合、ネットワーク構成を提供する必要があります。
-
[解決済み] スケジュールされたイベントソースをトリガーとするラムダ関数を設定するには、terraformを使用します。
-
[解決済み] Terraformを使って既存のVPCにECを立ち上げる方法
-
[解決済み] AWS - Disconnected : サポートされている認証方法がありません (サーバーは :publickey を送信)
-
[解決済み] S3バケットを丸ごとダウンロードする?
-
[解決済み] "保護されていない秘密鍵ファイル!" Amazon EC2インスタンス(AWS)へのSSH利用時のエラーについて
-
[解決済み] Amazon API GatewayからAWS Lambdaにクエリストリングやルートパラメータを渡す方法
-
[解決済み] AWS Lambda関数が別の関数を呼び出すことは可能か?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] aws-cliで認証するとUnrecognizedClientExceptionエラーが発生する。
-
[解決済み] AWS S3 Bucketの名前を変更する方法
-
[解決済み] クラウドフォーメーション Fn::JoinとFn:GetAttの併用
-
[解決済み] AWS Secrets Managerで指定された秘密が見つからない
-
[解決済み] アクセスポイントを経由してAmazon S3へのロールを認可する
-
[解決済み] G.1XおよびG.2XのAWS Glue Workerの価格詳細について
-
[解決済み] リクエストに含まれるセキュリティトークンの有効期限が切れている
-
[解決済み] List<AWS::EC2::Subnet::Id> 型のパラメータをネストしたCloudFormationテンプレートに渡す。
-
[解決済み] Amazon MQとSQSの違いは何ですか?
-
[解決済み] Terraform AWS Provider の有効なクレデンシャルソースが見つかりません。