Closed
Description
Expected Behaviour
I would expect it to work out of the box
Current Behaviour
I've wrapped my function with event_parser
for a kinesis input. For some records and not all, I get the following error:
[ERROR] InvalidEnvelopeError: Envelope must implement BaseEnvelope, envelope=<class 'aws_lambda_powertools.utilities.parser.envelopes.kinesis.KinesisDataStreamEnvelope'>
Traceback (most recent call last):
File "/var/task/aws_lambda_powertools/middleware_factory/factory.py", line 135, in wrapper
response = middleware()
File "/var/task/aws_lambda_powertools/utilities/parser/parser.py", line 98, in event_parser
parsed_event = parse(event=event, model=model, envelope=envelope)
File "/var/task/aws_lambda_powertools/utilities/parser/parser.py", line 175, in parse
raise InvalidEnvelopeError(f"Envelope must implement BaseEnvelope, envelope={envelope}")
I've tested to manually call KinesisDataStreamEnvelope.parse
and it works fine.
Strange thing, it doesn't happen for every lambda invocation.
Thx
Code snippet
from aws_lambda_powertools.utilities.parser import envelopes
from aws_lambda_powertools.utilities.parser import event_parser
from aws_lambda_powertools.utilities.typing import LambdaContext
@event_parser(
model=SuggestionPayload,
envelope=envelopes.KinesisDataStreamEnvelope,
)
def lambda_handler(document_events: list[SuggestionPayload], _: LambdaContext):
Possible Solution
No response
Steps to Reproduce
Lambda with Kinesis data stream connector and the previous code snippet.
Lambda is in a Docker format and not zip.
Powertools for AWS Lambda (Python) version
latest
AWS Lambda function runtime
3.10
Packaging format used
PyPi
Debugging logs
No debug logs before this error
Metadata
Metadata
Assignees
Type
Projects
Status
Shipped