|
7 | 7 |
|
8 | 8 | from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
|
9 | 9 |
|
10 |
| -from .sqs import PartialSQSProcessor |
| 10 | +from .base import BaseProcessor |
11 | 11 |
|
12 | 12 |
|
13 | 13 | @lambda_handler_decorator
|
14 |
| -def partial_sqs_processor( |
15 |
| - handler: Callable, event: Dict, context: Dict, record_handler: Callable, processor: PartialSQSProcessor = None |
| 14 | +def batch_processor( |
| 15 | + handler: Callable, event: Dict, context: Dict, record_handler: Callable, processor: BaseProcessor = None |
16 | 16 | ):
|
17 | 17 | """
|
| 18 | + Middleware to handle batch event processing |
| 19 | +
|
| 20 | + Parameters |
| 21 | + ---------- |
| 22 | + handler: Callable |
| 23 | + Lambda's handler |
| 24 | + event: Dict |
| 25 | + Lambda's Event |
| 26 | + context: Dict |
| 27 | + Lambda's Context |
| 28 | + record_handler: Callable |
| 29 | + Callable to process each record from the batch |
| 30 | + processor: PartialSQSProcessor |
| 31 | + Batch Processor to handle partial failure cases |
18 | 32 |
|
19 | 33 | Examples
|
20 | 34 | --------
|
| 35 | + **Processes Lambda's event with PartialSQSProcessor** |
| 36 | + >>> from aws_lambda_powertools.utilities.batch import batch_processor |
| 37 | + >>> |
| 38 | + >>> def record_handler(record): |
| 39 | + >>> return record["body"] |
| 40 | + >>> |
| 41 | + >>> @batch_processor(record_handler=record_handler, processor=PartialSQSProcessor) |
| 42 | + >>> def handler(event, context): |
| 43 | + >>> return {"StatusCode": 200} |
| 44 | +
|
| 45 | + Limitations |
| 46 | + ----------- |
| 47 | + * Async batch processors |
21 | 48 |
|
22 | 49 | """
|
23 | 50 | records = event["Records"]
|
24 |
| - processor = processor or PartialSQSProcessor() |
25 | 51 |
|
26 | 52 | with processor(records, record_handler) as ctx:
|
27 | 53 | ctx.process()
|
|
0 commit comments