AWSにあるサービスで定刻または一定の時間間隔でジョブ起動をさせたくEventBridgeを使って以下の事を試してみました。 ・cron式を使って、一定間隔でLambda関数を起動させる。 ・Lambda関数にJSONを渡す。
参考ドキュメント
参考にしたEventBridgeの公式ドキュメントのリンクです。 cron式には記述ルールがあり、リンク先を見て設定しました。
スケジュールに従って実行する Amazon EventBridge ルールの作成 - Amazon EventBridge
テストコード
Lambda関数に使うpythonのテストコードです。EventBridgeから受け取ったJSONの一部をlogに出力させています。
def lambda_handler(event, context): print(event['key1']) print(event['key2']) return { 'statusCode': 200, }
EventBridge
AWSコンソールからEventBridgeのルールを作成します。
①名前、パターンの設定(cron式の設定) cron式は5分間隔で設定します。
②パターンの設定の続き(タイムゾーンの選択) ローカルのタイムゾーンを選択します。直近10回分の起動時間が表示されるのでcron式が正しそうかここで確認します。
③ターゲットの選択 イベントの送信先となるLambda関数を設定します。Lambda関数に渡すJSONも設定しています。
結果の確認
CloudWatchLogsでLambda関数のログを確認します。"START"と書かれているログの時刻から5分間隔で実行できており、 EventBridgeのJSONに入れた値(test1,test2)も出力されているのでEventBridgeから設定通りに起動できているようです。