前回に引き続き、その1で、Step Functions を設定したが、そのStep Functionsを起動するAmazon EventBridgeを設定する。EC2を起動することなくcrontabが設定できるのが嬉しい。

目次
Amazon EventBridgeとは
Amazon EventBridgeとは、簡単に言えばトリガーの設定である。つまり、何らかのイベントを検知して、プログラムを実行することができる。トリガーの種類は2つあり、1つは、crontabでの定期的なスケジュール実行である。そしてもう一つは何らかのイベントが発生したタイミング(例えばS3のバケットにファイルアップロード)でStep FunctionsやLambdaなどを実行する、というものである。
スケジュール(crontab)の設定方法
Amazon EventBridgeから「ルールを作成」ボタンをクリック。

「名前」に「invoke-scraping」を入力。

「スケジュール」をクリックし、Cron式に「0 0,3,9,13 * * ? *」を入力。日本時間では、9時、12時、18時、22時に実行したいので、協定世界時間(UTC)の時間から−9時間しないといけない(9-9=0, 12-9=3, 18-9=9, 22-9=13)。最初はテストしたいので、「* 0 * * ? *」とし、1分おきに処理が実行されるようにしておく。

ターゲットに実行する「Step Functions ステートマシン」を選択し、「作成」ボタンをクリック。これで設定完了。

「イベントパターン」の作成方法(参考)
今回とは別になるが、S3にファイルアップロード時などに処理を起動することもできる。「イベントパターン」を選択し、「サービスごとの事前定義パターン」を選択。

サービスプロバイダーに「AWS」を選択、サービス名に「Simple Storage Service (S3)」を選択、イベントタイプに「オブジェクトレベルのオペレーション」を選択。

特定のオペレーションから「PutObject」を選択(S3にファイルアップロードされた時に反応)。特定のバケットにアップロード対象となるバケットを選択。あとは、1.と同様、ターゲット(キックしたいStep Functions)を選択すれば完了。

実行結果の確認方法
処理が実行されたかを確認するには、Step Functionsに戻る。

正常終了していれば、下記のように、ステータスに「成功」と表示される。

以上でAmazon EventBridgeの設定は完了。次に、Lambdaのコーディングを行う。