AWS で cron のような定期イベント実行が簡単にできないか調査していたところ、Amazon EventBridge というサービスを見つけた。
今回は、Lambda 関数の定期(週1)実行を例に、連携の設定について、メモしたので以下に示す。
設定手順
-
Amazon EventBridge コンソールにアクセス
-
画面左メニューから『バス』の「ルール」を選択
-
「ルールを作成」ボタンをクリック
-
ルールの詳細を指定
- 名前
- ルールの名前を入力
- 説明 - オプション
- ルールの説明を入力
- イベントバス
- 「default」を選択
- 「選択したイベントバスでルールを有効にする」をON
- ルールタイプ
- 「スケジュール」を選択
- 名前
-
「EventBridge Scheduler で続行」ボタンをクリック
-
スケジュールパターンを指定
-
頻度
- 「定期的なスケジュール」を選択
-
タイムゾーン
- 「(UTC+09:00) Asia/Tokyo」を選択
-
スケジュールの種類
- 「cron ベースのスケジュール」を選択
-
cron 式
-
「分 時間 日付 月 曜日 年」を入力
日本時間(JST)の毎週火曜4時 の場合
「0 4 ? * Tue *」もしくは「0 4 ? * 3 *」曜日
1:Sun
2:Mon
3:Tue
4:Wed
5:Thu
6:Fri
7:Sat※ 日付もしくは曜日のどちらかに「?」を指定する必要あり
-
-
フレックスタイムウィンドウ
- 「オフ」を選択
-
-
「次へ」ボタンをクリック
-
ターゲットの選択
- ターゲット API
- 「テンプレート化されたターゲット」を選択
- 「AWS Lambda Invoke」を選択
- Lambda 関数
- 起動したい Lambda 関数を選択
- ペイロード
- Lambda 関数起動の際のパラメータを入力
- ターゲット API
-
「次へ」ボタンをクリック
-
設定 - オプションを指定
- スケジュールを有効化
- 「有効化」を選択
- スケジュール完了後のアクション
- 「NONE」を選択
- 実行ロール
- 「このスケジュールの新しいロールを作成」を選択
- ロール名
- 自動で入力されたロール名
- スケジュールを有効化
-
「次へ」ボタンをクリック
-
スケジュールを確認
-
「スケジュールを作成」ボタンをクリック
参考サイト
AWS Lambdaで遊ぼう #2 Lambda関数を定期実行する
https://benjamin.co.jp/blog/technologies/lambda-2-eventbridge/
EventBridge のスケジュールパターンで「CRON 式が無効です」が発生したときの対処方法
https://dev.classmethod.jp/articles/tsnote-eventbridge-cron-expression-is-invalid-in-eventbridge-schedule-pattern/
(2025/02 頃執筆)
株式会社ボトルキューブではお仕事を募集中です。
お問い合わせは下記リンク先のフォームからご連絡ください。
https://www.bottlecube.co.jp/contact