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": {}
}
コメント