Skip to content

Commit d637f59

Browse files
committed
chore: advanced accessing lambda context refactor
1 parent 9951d39 commit d637f59

File tree

4 files changed

+60
-55
lines changed

4 files changed

+60
-55
lines changed

docs/utilities/batch.md

Lines changed: 5 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ Use the context manager to access a list of all returned values from your `recor
273273
* **When successful**. We will include a tuple with `success`, the result of `record_handler`, and the batch record
274274
* **When failed**. We will include a tuple with `fail`, exception as a string, and the batch record
275275

276-
```python hl_lines="30-36" title="Accessing processed messages via context manager"
276+
```python hl_lines="26-34" title="Accessing processed messages via context manager"
277277
--8<-- "examples/batch_processing/src/context_manager_access.py"
278278
```
279279

@@ -291,63 +291,14 @@ We can automatically inject the [Lambda context](https://docs.aws.amazon.com/lam
291291

292292
=== "As a decorator (legacy)"
293293

294-
```python hl_lines="15"
295-
from typing import Optional
296-
297-
from aws_lambda_powertools import Logger, Tracer
298-
from aws_lambda_powertools.utilities.batch import (BatchProcessor, EventType,
299-
batch_processor)
300-
from aws_lambda_powertools.utilities.data_classes.sqs_event import SQSRecord
301-
from aws_lambda_powertools.utilities.typing import LambdaContext
302-
303-
processor = BatchProcessor(event_type=EventType.SQS)
304-
tracer = Tracer()
305-
logger = Logger()
306-
307-
308-
@tracer.capture_method
309-
def record_handler(record: SQSRecord, lambda_context: Optional[LambdaContext] = None):
310-
if lambda_context is not None:
311-
remaining_time = lambda_context.get_remaining_time_in_millis()
312-
...
313-
314-
315-
@logger.inject_lambda_context
316-
@tracer.capture_lambda_handler
317-
@batch_processor(record_handler=record_handler, processor=processor)
318-
def lambda_handler(event, context: LambdaContext):
319-
return processor.response()
294+
```python hl_lines="18"
295+
--8<-- "examples/batch_processing/src/advanced_accessing_lambda_context_decorator.py"
320296
```
321297

322298
=== "As a context manager"
323299

324-
```python hl_lines="14 23"
325-
from typing import Optional
326-
327-
from aws_lambda_powertools import Logger, Tracer
328-
from aws_lambda_powertools.utilities.batch import BatchProcessor, EventType
329-
from aws_lambda_powertools.utilities.data_classes.sqs_event import SQSRecord
330-
from aws_lambda_powertools.utilities.typing import LambdaContext
331-
332-
processor = BatchProcessor(event_type=EventType.SQS)
333-
tracer = Tracer()
334-
logger = Logger()
335-
336-
337-
@tracer.capture_method
338-
def record_handler(record: SQSRecord, lambda_context: Optional[LambdaContext] = None):
339-
if lambda_context is not None:
340-
remaining_time = lambda_context.get_remaining_time_in_millis()
341-
...
342-
343-
@logger.inject_lambda_context
344-
@tracer.capture_lambda_handler
345-
def lambda_handler(event, context: LambdaContext):
346-
batch = event["Records"]
347-
with processor(records=batch, handler=record_handler, lambda_context=context):
348-
result = processor.process()
349-
350-
return result
300+
```python hl_lines="14 24"
301+
--8<-- "examples/batch_processing/src/advanced_accessing_lambda_context_manager.py"
351302
```
352303

353304
### Extending BatchProcessor

examples/batch_processing/src/advanced_accessing_lambda_context.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ def record_handler(record: SQSRecord, lambda_context: Optional[LambdaContext] =
2121
if payload:
2222
item: dict = json.loads(payload)
2323
logger.info(item)
24-
...
2524

2625

2726
@logger.inject_lambda_context
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from typing import Optional
2+
3+
from aws_lambda_powertools import Logger, Tracer
4+
from aws_lambda_powertools.utilities.batch import (
5+
BatchProcessor,
6+
EventType,
7+
batch_processor,
8+
)
9+
from aws_lambda_powertools.utilities.data_classes.sqs_event import SQSRecord
10+
from aws_lambda_powertools.utilities.typing import LambdaContext
11+
12+
processor = BatchProcessor(event_type=EventType.SQS)
13+
tracer = Tracer()
14+
logger = Logger()
15+
16+
17+
@tracer.capture_method
18+
def record_handler(record: SQSRecord, lambda_context: Optional[LambdaContext] = None):
19+
if lambda_context is not None:
20+
remaining_time = lambda_context.get_remaining_time_in_millis()
21+
logger.info(remaining_time)
22+
23+
24+
@logger.inject_lambda_context
25+
@tracer.capture_lambda_handler
26+
@batch_processor(record_handler=record_handler, processor=processor)
27+
def lambda_handler(event, context: LambdaContext):
28+
return processor.response()
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from typing import Optional
2+
3+
from aws_lambda_powertools import Logger, Tracer
4+
from aws_lambda_powertools.utilities.batch import BatchProcessor, EventType
5+
from aws_lambda_powertools.utilities.data_classes.sqs_event import SQSRecord
6+
from aws_lambda_powertools.utilities.typing import LambdaContext
7+
8+
processor = BatchProcessor(event_type=EventType.SQS)
9+
tracer = Tracer()
10+
logger = Logger()
11+
12+
13+
@tracer.capture_method
14+
def record_handler(record: SQSRecord, lambda_context: Optional[LambdaContext] = None):
15+
if lambda_context is not None:
16+
remaining_time = lambda_context.get_remaining_time_in_millis()
17+
logger.info(remaining_time)
18+
19+
20+
@logger.inject_lambda_context
21+
@tracer.capture_lambda_handler
22+
def lambda_handler(event, context: LambdaContext):
23+
batch = event["Records"]
24+
with processor(records=batch, handler=record_handler, lambda_context=context):
25+
result = processor.process()
26+
27+
return result

0 commit comments

Comments
 (0)