Skip to content

Commit 592b5a8

Browse files
author
Tom McCarthy
committed
chore: add debug logging for sqs batch processing
1 parent 249b595 commit 592b5a8

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

aws_lambda_powertools/utilities/batch/base.py

+4
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44
Batch processing utilities
55
"""
66

7+
import logging
78
from abc import ABC, abstractmethod
89
from typing import Any, Callable, Dict, Iterable, List, Tuple
910

1011
from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
1112

13+
logger = logging.getLogger(__name__)
14+
1215

1316
class BasePartialProcessor(ABC):
1417
"""
@@ -92,6 +95,7 @@ def failure_handler(self, record: Any, exception: Exception):
9295
"fail", exceptions args, original record
9396
"""
9497
entry = ("fail", exception.args, record)
98+
logger.debug("Record processing exception: ", exception)
9599
self.exceptions.append(exception)
96100
self.fail_messages.append(record)
97101
return entry

aws_lambda_powertools/utilities/batch/sqs.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"""
44
Batch SQS utilities
55
"""
6+
import logging
67
from typing import Callable, Dict, List, Optional, Tuple
78

89
import boto3
@@ -12,6 +13,8 @@
1213
from .base import BasePartialProcessor
1314
from .exceptions import SQSBatchProcessingError
1415

16+
logger = logging.getLogger(__name__)
17+
1518

1619
class PartialSQSProcessor(BasePartialProcessor):
1720
"""
@@ -106,14 +109,18 @@ def _clean(self):
106109
# If all messages were successful, fall back to the default SQS -
107110
# Lambda behaviour which deletes messages if Lambda responds successfully
108111
if not self.fail_messages:
112+
logger.debug(f"All {len(self.success_messages)} records successfully processed")
109113
return
110114

111115
queue_url = self._get_queue_url()
112116
entries_to_remove = self._get_entries_to_clean()
113117

114118
delete_message_response = self.client.delete_message_batch(QueueUrl=queue_url, Entries=entries_to_remove)
115119

116-
if self.fail_messages and not self.suppress_exception:
120+
if self.suppress_exception:
121+
logger.debug(f"{len(self.fail_messages)} records failed processing, but exceptions are suppressed")
122+
else:
123+
logger.debug(f"{len(self.fail_messages)} records failed processing, raising exception")
117124
raise SQSBatchProcessingError(list(self.exceptions))
118125

119126
return delete_message_response

0 commit comments

Comments
 (0)