AWS Lambda を cron 式で指定時間にトリガーする場合、トリガーには Cloud Watch Event を指定します。 この場合、Lambda のイベントハンドラへ渡される event
(JSON オブジェクト) のサンプルは Event Patterns in CloudWatch Events に掲載されています。 実際に CloudWatch Event からトリガーされた場合の event
サンプルをメモしておきます。 python-lambda-local からローカル実行する際などにも活用出来ると思います。
サンプルプログラム
event
の内容をウォッチする為に以下の Lambda 関数を定義しました。 この Lambda 関数に Cloud Watch Event をトリガーとして定義し、結果を Cloud Watch のロググループから確認します。
import logging logger = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(event, context): logger.info(event)
event
の実際の例
cloud_watch_event_trigger
という名前の CloudWatch Event を新規作成し、このトリガーからサンプルを実行した結果、event
は以下の内容になっていました。
{ "version": "0", "id": "f1df7cee-1234-5678-de36-e9ef43c16ad1", "detail-type": "Scheduled Event", "source": "aws.events", "account": "123456789012", "time": "2020-02-02T12:51:39Z", "region": "ap-northeast-1", "resources": [ "arn:aws:events:ap-northeast-1:123456789012:rule/cloud_watch_event_trigger" ], "detail": {} }
予め用意されている Lambda の CloudWatch テストイベント
プリセットされている CloudWatch テストイベントの内容は以下のようになっていました。
{ "id": "cdc73f9d-aea9-11e3-9d5a-835b769c0d9c", "detail-type": "Scheduled Event", "source": "aws.events", "account": "{{{account-id}}}", "time": "1970-01-01T00:00:00Z", "region": "ap-northeast-1", "resources": [ "arn:aws:events:ap-northeast-1:123456789012:rule/ExampleRule" ], "detail": {} }