Skip to content

Commit b95a833

Browse files
author
Ran Isenberg
committed
cr fixes
1 parent 836c066 commit b95a833

File tree

4 files changed

+10
-5
lines changed

4 files changed

+10
-5
lines changed

aws_lambda_powertools/utilities/parser/envelopes/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
from .base import BaseEnvelope
2-
from .cloudwatch import CloudatchEnvelope
2+
from .cloudwatch import CloudatchLogsEnvelope
33
from .dynamodb import DynamoDBStreamEnvelope
44
from .event_bridge import EventBridgeEnvelope
55
from .sns import SnsEnvelope
66
from .sqs import SqsEnvelope
77

88
__all__ = [
9-
"CloudatchEnvelope",
9+
"CloudatchLogsEnvelope",
1010
"DynamoDBStreamEnvelope",
1111
"EventBridgeEnvelope",
1212
"SnsEnvelope",

aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
logger = logging.getLogger(__name__)
99

1010

11-
class CloudatchEnvelope(BaseEnvelope):
11+
class CloudatchLogsEnvelope(BaseEnvelope):
1212
"""Cloudatch Envelope to extract a List of log records.
1313
1414
The record's body parameter is a string (after being base64 decoded and gzipped),

aws_lambda_powertools/utilities/parser/models/cloudwatch.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import base64
22
import json
3+
import logging
34
import zlib
45
from datetime import datetime
56
from typing import List
67

78
from pydantic import BaseModel, Field, validator
89

10+
logger = logging.getLogger(__name__)
11+
912

1013
class CloudWatchLogsLogEvent(BaseModel):
1114
id: str # noqa AA03 VNE003
@@ -28,9 +31,11 @@ class CloudWatchLogsData(BaseModel):
2831
@validator("decoded_data", pre=True)
2932
def prepare_data(cls, value):
3033
try:
34+
logger.debug("Decoding base64 cloudwatch log data before parsing")
3135
payload = base64.b64decode(value)
36+
logger.debug("Decompressing cloudwatch log data before parsing")
3237
uncompressed = zlib.decompress(payload, zlib.MAX_WBITS | 32)
33-
return json.loads(uncompressed.decode("UTF-8"))
38+
return json.loads(uncompressed.decode("utf-8"))
3439
except Exception:
3540
raise ValueError("unable to decompress data")
3641

tests/functional/parser/test_cloudwatch.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from tests.functional.parser.utils import load_event
1313

1414

15-
@event_parser(model=MyCloudWatchBusiness, envelope=envelopes.CloudatchEnvelope)
15+
@event_parser(model=MyCloudWatchBusiness, envelope=envelopes.CloudatchLogsEnvelope)
1616
def handle_cloudwatch_logs(event: List[MyCloudWatchBusiness], _: LambdaContext):
1717
assert len(event) == 1
1818
log: MyCloudWatchBusiness = event[0]

0 commit comments

Comments
 (0)