protected override async Task Handle(SQSEvent sqsEvent, ILambdaContext context) { Logger.Info($"Processing Sqs event With {sqsEvent.Records?.Count} records."); if (sqsEvent?.Records == null) { return; } if (sqsEvent.Records.Count == 0) { return; } foreach (var record in sqsEvent.Records) { Logger.Info($"Processing SQS Event message ID {record.MessageId}."); var message = new QueueMessage <TBody>() { MessageId = record.MessageId, ReceiptHandle = record.ReceiptHandle, Attributes = record.Attributes, Body = Serializer.DeserializeObject <TBody>(record.Body) }; message.ParseQueueAttributes(record.Attributes); await ProcessMessage(message); Logger.Info($"SQS Event message ID {record.MessageId} Processed."); } }