Fix parsing for multiline Lambda events logged via logging module
This commit is contained in:
parent
acf7986376
commit
329e55e358
4
index.py
4
index.py
@ -17,7 +17,7 @@ import boto3
|
|||||||
|
|
||||||
__author__ = "Stefan Reimer"
|
__author__ = "Stefan Reimer"
|
||||||
__author_email__ = "stefan@zero-downtime.net"
|
__author_email__ = "stefan@zero-downtime.net"
|
||||||
__version__ = "0.9.1"
|
__version__ = "0.9.2"
|
||||||
|
|
||||||
# Global alias lookup cache
|
# Global alias lookup cache
|
||||||
account_aliases = {}
|
account_aliases = {}
|
||||||
@ -229,7 +229,7 @@ def handler(event, context):
|
|||||||
# "[%(levelname)s]\t%(asctime)s.%(msecs)dZ\t%(aws_request_id)s\t%(message)s\n"
|
# "[%(levelname)s]\t%(asctime)s.%(msecs)dZ\t%(aws_request_id)s\t%(message)s\n"
|
||||||
_msg = e['message']
|
_msg = e['message']
|
||||||
pattern = r'(?:\[(?P<level>[^\]]*)\])\t(?P<time>.*?)\t(?P<RequestId>\S*?)\t(?P<message>.*)'
|
pattern = r'(?:\[(?P<level>[^\]]*)\])\t(?P<time>.*?)\t(?P<RequestId>\S*?)\t(?P<message>.*)'
|
||||||
data = re.match(pattern, e['message'])
|
data = re.match(pattern, e['message'], flags=re.DOTALL)
|
||||||
if data:
|
if data:
|
||||||
event['level'] = data.group('level')
|
event['level'] = data.group('level')
|
||||||
parsed['RequestId'] = data.group('RequestId')
|
parsed['RequestId'] = data.group('RequestId')
|
||||||
|
@ -26,7 +26,7 @@ logging.getLogger("index").setLevel(logging.DEBUG)
|
|||||||
|
|
||||||
def test_parse():
|
def test_parse():
|
||||||
# Test Cloudwatch Logs
|
# Test Cloudwatch Logs
|
||||||
event = json.loads('{"awslogs": {"data": "H4sICAW8uVwAA3RtcACtU11v00AQfOdXHBaPTb33fZc3p3FLEHFQ4kpAElW2cwkWSRzsM6VU/e9sWpBS1EhF5eUedlczs7Nzt8HGNU22cunNzgXdoB+l0dUwnkyiizg4CarrrauxTBkXUmljgTIsr6vVRV21O+yE2XUTrrNNvshC7xrfWbbbwpfV9mFs4muXbXCOAbUh8JDycPrmfZTGk3TOijzPOHAqnBGFhcwsl1YrzUFbMFQiRNPmTVGXuz3iebn2rm6C7jQ4W1ftoue2C1dfDVcbH8zv2eLvbuv3A7dBuUBSLhRjIEFIzq0VCkBroZQ0RkumjFDSWhCCCZBIai2zmgsqBBL7Eo3x2QZ3pFIyCUpwBDMnfwxD+Kgoqnbry0WXHBo02wZ3Jy9TIJ+pYHyZkHejHhklJH07jqM+oQK4Vvgih+CMTP0XvMCic6+0S/T8P6hTz1Q3HSTno/nM72/fAd6hPKW2K3SXqlPG9GfsZCIvQOcdJ6zriIJCx3KnOjlK0oIX2mg989lud7qussXVQ87Isq42pOHdMGx43hZfnQ8P/X+cw7Cotsty9eTaWmq2lw6MUouETFLNFbWUGysREJSm6AhVlINU/MjaiGEP136KSgI1XKFAJYzSkgJjiArA0HfLFFXMGglgkdtqDXCEygiARwl8vz/6J4I5SAbJBYkSMkgmaZScxa9J/HGQYvFpOQxjwo3kUgpF0WXDcBFMDWZPgwbKuZZC4NUZ/odjcUQ5jzaPkz4Zu28tDg7wUzzrui9XdyyOf6sbxx9G4/SfBfp+W2f7JOE8NfRUKrJpZr5XrtduQQ6aDAA7ZOaHblPVN2RS/nRYxvlhD4vZD/K7cdk4JLf6vr43YH736hfQoJlgiQUAAA==" } }')
|
event = json.loads('{"awslogs": {"data": "H4sICILSAl0AA3Rlc3QArVNdb9tGEHzvr7gSfWgB09z7vuObHDOuCpsqKAZoawnGkTy5RChSJY9N0iD/vSslLew2BlykLwSxu9idmZt5H+39NLl7X747+CiNLhfl4u4mW68XV1l0Fg1vej9imTIupNLGAmVY7ob7q3GYD9hJ3Jsp6dy+alwS/BTi3dzXoR36j2PrMHq3xzkG1CbAE8qT22+uF2W2LresrirHgVPhjagtOLPbWa00B23BUIkrprma6rE9HDe+bLvgxylKb6MX3TA3F75v/Hh3c78P0fZ0Lfvd9+E48D5qGzzKhWIMJAjJubVCAWgtlJLGaMmUEUpaC0IwARKPWsus5oIKgYdDi8IEt0eOVEomQQmOy8zZX4Lh+kVdD3Mf2iYlDwXa9NGHsy9DIJ+JoHiVkx9WF2SVk/L7IltcEiqAa4VfvCE4I7fhV3yBJj4hTYne/g/o1DPR3S7zl6vtJhzfPgYeU15SmwqdUnXOmP4FO05UNegq9sL6WNQUYsu9iiuEpAWvtdF6E9zhcN4Nrrn76DOyG4c9mXiaJBOv5vq1D8lD/R/7MKmHftfef5a2lpodoQOj1OJBJqnmilrKjZW4EJSmqAhVlINU/AnauMM+op0Vxar4m7c68dYpQCr5OQdA3sY606D1YwM7HgvXNLFzsIsVBTBm58EJ5F1k19linZHTvpRs+vnQuODJ6DvvJj8ln35Ii0F4m276cnS1r1z9mny7H6aAgzUGgtSu60jnpvDdvzWQQA1XqJwSRmlJgTF6RMHQEJYpqpg1EsCiKFZrgCc0MALgUTSuj278maBB82V+RRY5WebrcpG/yL4m2U/LEoufexIJDP3LjeRSCkXx+Q1DhdHOGAoNGijnWgqBdmQY1KdygnAePUmWX5LC/zbj4BLT+izbfTm6p3LyT3RF9uOqKP8zwHA5j+5ocZynhp5LRfbTJly0Xecb8qDJALBDNuHG74fxHVm3f3gs4/zNBRbdW/Kp8WryeNzqU/0owPbDV38Ce70icCIGAAA=" } }')
|
||||||
index.handler(event, context)
|
index.handler(event, context)
|
||||||
|
|
||||||
# Cloudfront Access Logs via S3
|
# Cloudfront Access Logs via S3
|
||||||
|
Loading…
Reference in New Issue
Block a user