TatsuyaのテクTechブログ

IT技術を中心に勉強したことを書くブログ

EventBridgeのcron式を使ったルールで、Lambda関数へJSONを渡す&一定間隔で起動させてみる

f:id:dolphin-jump1011:20211211205731p:plain

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分間隔で設定します。 f:id:dolphin-jump1011:20211211212932p:plain

②パターンの設定の続き(タイムゾーンの選択) ローカルのタイムゾーンを選択します。直近10回分の起動時間が表示されるのでcron式が正しそうかここで確認します。 f:id:dolphin-jump1011:20211211213038p:plain

③ターゲットの選択 イベントの送信先となるLambda関数を設定します。Lambda関数に渡すJSONも設定しています。 f:id:dolphin-jump1011:20211211213131p:plain

結果の確認

CloudWatchLogsでLambda関数のログを確認します。"START"と書かれているログの時刻から5分間隔で実行できており、 EventBridgeのJSONに入れた値(test1,test2)も出力されているのでEventBridgeから設定通りに起動できているようです。

f:id:dolphin-jump1011:20211211213951p:plain