かくすけのいろいろ作るブログ

かくすけの開発者ブログです。開発の他いろいろなモノづくりについて書きます。

【Lambda】Lambda関数をスケジュール実行する

こんにちは。かくすけです。
このブログももうちょっと整理しないとな・・・と思いつつ放置しています。
せめてカテゴリ分けくらいはした方がいいと思うんだけどね。

この記事は↓の記事の続きです。

kakusuke98.hatenablog.com

前回、Rubyの処理を実行するLambda関数を作成しました。
今回は作成したLambda関数を毎日実行するようにスケジューリング設定します。

方法は簡単!LambdaならCloudWatchのイベントを使って簡単にスケジューリングできます。

手順

まずは作成したLambda関数の編集ページを開きます。
画面上部「設定」タブの「Designer」の項目を触ります。
左の「トリガーの追加」リストで「CloudWatch Events」を選択します。

f:id:kakusuke98:20190505181748p:plain

すると「トリガーの設定」という項目が画面下に追加されます。
「ルール」のセレクトボックスを開き

f:id:kakusuke98:20190505182546p:plain

「新規ルールの作成」を選択します。

f:id:kakusuke98:20190505182656p:plain

すると入力項目がいくつか増えます。
「ルール名」「ルールタイプ」「スケジュール式」を設定します。

f:id:kakusuke98:20190505184057p:plain

ルール名ご自由に
ルールタイプ今回はスケジュールに合わせて実行するので「スケジュール式」を選択
「イベントパターン」というのは「S3にファイルがアップロードされたら~」とか
「サーバー負荷がこれくらいになったら~」とかを条件として設定できるやつですね。
スケジュール式適宜
1時間に1回だったら「rate(1 hour)」
3日に1回だったら「rate(1 days)」
みたいな感じで設定します。
画像のルール名とスケジュール式がずれてるのはミスです。ややこしくてすみません。
rateではなくcronを使用するともっと細かいスケジュール設定ができます。

「追加」ボタンを押します。
次のような表示にかわります。

f:id:kakusuke98:20190505184633p:plain

ページ右上の「保存」ボタンを押します。

f:id:kakusuke98:20190505184704p:plain

問題がなければ次のような表示にかわります。

f:id:kakusuke98:20190505184901p:plain

これでスケジュール設定が完了しました!
後は待ってちゃんと動作しているか確認しましょう!