AWS Lambda (Python 3.8)でイベント起動した時にeventに渡されるパラメータあれこれ

[最終更新] 2020年11月30日

AWSのLambda関数で、S3とかSNSとかのイベントで発火させる時に、event変数に渡されるパラメータのjson形式についてのまとめ。

スポンサーリンク

S3

最終確認: 2020-10-19

{
  "Records": [
    {
      "eventVersion": "2.1",
      "eventSource": "aws:s3",
      "awsRegion": "ap-northeast-1",
      "eventTime": "2020-11-11T07:11:11.971Z",
      "eventName": "ObjectCreated:Put",
      "userIdentity": {
        "principalId": "AWS:xxxx"
      },
      "requestParameters": {
        "sourceIPAddress": "xxxx"
      },
      "responseElements": {
        "x-amz-request-id": "xxxx",
        "x-amz-id-2": "xxxx"
      },
      "s3": {
        "s3SchemaVersion": "1.0",
        "configurationId": "xxxx",
        "bucket": {
          "name": "xxxx",
          "ownerIdentity": {
            "principalId": "xxxx",
          },
          "arn": "arn:aws:s3:::xxxx"
        },
        "object": {
          "key": "<ファイル名>"
          "size": 1110,
          "eTag": "b8998f8b6c5bf97ebb47785edcabf58f",
          "sequencer": "005FAB8E92A2CE5967"
        }
      }
    }
  ]
}

DynamoDB Stream

{
    'Records': [
        {
            'eventID': 'xxxxxxxxxxx',
            'eventName': 'INSERT' | 'MODIFY' | 'REMOVE',
            'eventVersion': '1.1',
            'eventSource': 'aws:dynamodb',
            'awsRegion': 'ap-northeast-1',
            'dynamodb': {
                'ApproximateCreationDateTime': 1587462474.0,
                'Keys': {'<PK>が入る': {'S': 'hogehoge'}, '<SK>が入る': {'N': '1587462000000'}},
                'NewImage' | 'OldImage': {'パラメータ1': {'S': 'fugafuga'}, ...},
                'SequenceNumber': 'xxxxxxxxxxxxxxx',
                'SizeBytes': 131,
                'StreamViewType': 'NEW_IMAGE' | 'NEW_AND_OLD_IMAGES' | 'OLD_IMAGE'
            },
            'eventSourceARN': 'xxxxxxxxxxx'
        },
...
    ]
}

SNS

最終確認: 2020/11/20

{
  "Records": [
    {
      "EventSource": "aws:sns",
      "EventVersion": "1.0",
      "EventSubscriptionArn": "xxxx"
      "Sns": {
        "Type": "Notification",
        "MessageId": "xxxx",
        "TopicArn": "xxxx"
        "Subject": "xxxx",
        "Message": "xxxx",
        "Timestamp": "2020-11-13T08:56:32.217Z",
        "SignatureVersion": "1",
        "Signature": "xxxx",
        "SigningCertUrl": "xxxx",
        "UnsubscribeUrl": "xxxx",
        "MessageAttributes": {}
      }
    }
  ]
}

S3 -> SNS -> Lambda の場合

SnsレコードのMessageに、S3のRecordがシリアライズドされたjsonで入っている。

CloudWatch -> SNS -> Lambdaの場合

SnsレコードのMessageに、以下のシリアライドされたjsonが入っている。

{
  'AlarmName': 'xxxx',
  'AlarmDescription': None,
  'AWSAccountId': 'xxxx',
  'NewStateValue': 'ALARM',
  'NewStateReason': 'xxxx',
  'StateChangeTime': '2020-10-12T04:50:22.996+0000',
  'Region': 'Asia Pacific Tokyo',
  'AlarmArn': 'xxxx',
  'OldStateValue': 'OK',
  'Trigger': {
    'MetricName': '4XXError',
    'Namespace': 'AWS/ApiGateway',
    'StatisticType': 'Statistic',
    'Statistic': 'AVERAGE',
    'Unit': None,
    'Dimensions':
      [
        {
          'value': 'xxxx',
          'name': 'xxxx'
        }
      ],
    'Period': 300,
    'EvaluationPeriods': 1,
    'ComparisonOperator': 'GreaterThanThreshold',
    'Threshold': 0.03,
    'TreatMissingData': 'xxxx'
    'EvaluateLowSampleCountPercentile': ''
  }
}

関連コンテンツ

関連記事

スポンサーリンク

カテゴリーaws

コメントを残す

メールアドレスが公開されることはありません。