前提
定期的に実行したいLambdaが作成されていること。
手順
- 定期実行用のCloudWatch Events のルールを作成する
- 1.のイベントをLambdaに紐づける
定期実行用のCloudWatch Events のルールを作成する
Amazon CloudWatch Events とは
ざっくり言うと、AWSの各種リソースを監視して、設定したルールに該当した時にイベントを発火させるサービス。
Amazon CloudWatch Events では、Amazon Web Services (AWS) リソースの変更を記述した、システムイベントのほぼリアルタイムのストリーミングを配信します。すぐに設定できる簡単なルールを使用して、ルールに一致したイベントを 1 つ以上のターゲット関数またはストリームに振り分けることができます。CloudWatch Events が発生すると、運用上の変更が認識されます。CloudWatch Events は、オペレーションの変更に応答し、必要に応じて、応答メッセージを環境に送り、機能をアクティブ化し、変更を行い、状態情報を収集することによって、是正措置を実行します。
Concepts
イベント – イベントは、AWS 環境の変化を示します。AWS リソースは、その状態が変わったときにイベントを生成できます。例えば、Amazon EC2 は EC2 インスタンスの状態が保留中から実行中に変わったときにイベントを生成し、Amazon EC2 Auto Scaling はインスタンスを起動または終了したときにイベントを生成します。API コールを行うと、AWS CloudTrail がイベントを発行します。カスタムアプリケーションレベルのイベントを生成し、CloudWatch Events に発行することができます。定期的に生成される予定されたイベントをセットアップすることもできます。イベントを生成するサービスの一覧や、各サービスのサンプルイベントについては、「サポートされているサービスからの CloudWatch Events イベントの例」を参照してください。
ルール – ルールは、一致した受信イベントを検出し、処理のためにターゲットに振り分けます。1 つのルールで、複数のターゲットを振り分けることができ、それらのすべてが並列に処理されます。ルールは特定の順序で処理されません。これにより、組織のさまざまな部署が目的のイベントを検索して処理できます。ルールは、特定の部分のみ渡したり、定数で上書きしたりすることにより、ターゲットに送信される JSON をカスタマイズできます。
ターゲット – ターゲットはイベントを処理します。ターゲットには、Amazon EC2 インスタンス、AWS Lambda 関数、Kinesis ストリーム、Amazon ECS タスク、Step Functions ステートマシン、Amazon SNS トピック、Amazon SQS キュー、組み込みターゲットを含めることができます。ターゲットは、JSON 形式のイベントを受け取ります。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html
利用するには、下記設定が必要です。
・CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開く
「ルールの作成」 > 「スケジュール」で任意の実行頻度を設定する。
1.のイベントをLambdaに紐づける
「ターゲットの追加」 > 「Lambda関数」で定期実行したいLambdaを選択する。
以上で、定期実行の設定が完了。
「関数の概要」ページから、トリガーに「EventBridge (CloudWatch Events)」が追加されてることを確認できる。
参考
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/RunLambdaSchedule.html
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html