diff --git a/aws_lambda_powertools/utilities/data_classes/__init__.py b/aws_lambda_powertools/utilities/data_classes/__init__.py index 7c1b67e6fa0..262d132bcbf 100644 --- a/aws_lambda_powertools/utilities/data_classes/__init__.py +++ b/aws_lambda_powertools/utilities/data_classes/__init__.py @@ -46,7 +46,7 @@ from .secrets_manager_event import SecretsManagerEvent from .ses_event import SESEvent from .sns_event import SNSEvent -from .sqs_event import SQSEvent +from .sqs_event import SQSEvent, SQSRecord from .transfer_family_event import TransferFamilyAuthorizer, TransferFamilyAuthorizerResponse from .vpc_lattice import VPCLatticeEvent, VPCLatticeEventV2 @@ -87,6 +87,7 @@ "SESEvent", "SNSEvent", "SQSEvent", + "SQSRecord", "event_source", "AWSConfigRuleEvent", "VPCLatticeEvent", diff --git a/examples/event_sources/src/sqs_event.py b/examples/event_sources/src/sqs_event.py index b76b1bfd360..b38e214fbca 100644 --- a/examples/event_sources/src/sqs_event.py +++ b/examples/event_sources/src/sqs_event.py @@ -1,13 +1,18 @@ -from aws_lambda_powertools.utilities.data_classes import SQSEvent, event_source +from aws_lambda_powertools.utilities.data_classes import SQSEvent, SQSRecord, event_source @event_source(data_class=SQSEvent) def lambda_handler(event: SQSEvent, context): # Multiple records can be delivered in a single event for record in event.records: - message = record.body - message_id = record.message_id + message, message_id = process_record(record) return { "message": message, "message_id": message_id, } + + +def process_record(record: SQSRecord): + message = record.body + message_id = record.message_id + return message, message_id