Skip to content

Commit 58d78ca

Browse files
committed
docs: add caveat section
1 parent f380f57 commit 58d78ca

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

Diff for: docs/utilities/batch.md

+37
Original file line numberDiff line numberDiff line change
@@ -1026,6 +1026,43 @@ You can then use this class as a context manager, or pass it to `batch_processor
10261026
return {"statusCode": 200}
10271027
```
10281028

1029+
### Caveats
1030+
1031+
#### Tracer response auto-capture for large batch sizes
1032+
1033+
When using Tracer to capture responses for each batch record processing, you might exceed 64K of tracing data depending on what you return from your `record_handler` function, or how big is your batch size.
1034+
1035+
If that's the case, you can configure [Tracer to disable response auto-capturing](../core/tracer.md#disabling-response-auto-capture){target="_blank"}.
1036+
1037+
1038+
```python hl_lines="14" title="Disabling Tracer response auto-capturing"
1039+
import json
1040+
1041+
from aws_lambda_powertools import Logger, Tracer
1042+
from aws_lambda_powertools.utilities.batch import BatchProcessor, EventType, batch_processor
1043+
from aws_lambda_powertools.utilities.data_classes.sqs_event import SQSRecord
1044+
from aws_lambda_powertools.utilities.typing import LambdaContext
1045+
1046+
1047+
processor = BatchProcessor(event_type=EventType.SQS)
1048+
tracer = Tracer()
1049+
logger = Logger()
1050+
1051+
1052+
@tracer.capture_method(capture_response=False)
1053+
def record_handler(record: SQSRecord):
1054+
payload: str = record.body
1055+
if payload:
1056+
item: dict = json.loads(payload)
1057+
...
1058+
1059+
@logger.inject_lambda_context
1060+
@tracer.capture_lambda_handler
1061+
@batch_processor(record_handler=record_handler, processor=processor)
1062+
def lambda_handler(event, context: LambdaContext):
1063+
return processor.response()
1064+
1065+
```
10291066

10301067
## FAQ
10311068

0 commit comments

Comments
 (0)