@@ -556,21 +556,42 @@ attributes values (`AttributeValue`), as well as enums for stream view type (`St
556
556
557
557
=== "app.py"
558
558
559
- ``` python
560
- from aws_lambda_powertools.utilities.data_classes.dynamo_db_stream_event import (
561
- DynamoDBStreamEvent,
562
- DynamoDBRecordEventName
563
- )
564
-
565
- def lambda_handler (event , context ):
566
- event: DynamoDBStreamEvent = DynamoDBStreamEvent(event)
567
-
568
- # Multiple records can be delivered in a single event
569
- for record in event.records:
570
- if record.event_name == DynamoDBRecordEventName.MODIFY :
571
- do_something_with(record.dynamodb.new_image)
572
- do_something_with(record.dynamodb.old_image)
573
- ```
559
+ ```python
560
+ from aws_lambda_powertools.utilities.data_classes.dynamo_db_stream_event import (
561
+ DynamoDBStreamEvent,
562
+ DynamoDBRecordEventName
563
+ )
564
+
565
+ def lambda_handler(event, context):
566
+ event: DynamoDBStreamEvent = DynamoDBStreamEvent(event)
567
+
568
+ # Multiple records can be delivered in a single event
569
+ for record in event.records:
570
+ if record.event_name == DynamoDBRecordEventName.MODIFY:
571
+ do_something_with(record.dynamodb.new_image)
572
+ do_something_with(record.dynamodb.old_image)
573
+ ```
574
+
575
+ === "multiple_records_types.py"
576
+
577
+ ```python
578
+ from aws_lambda_powertools.utilities.data_classes import event_source, DynamoDBStreamEvent
579
+ from aws_lambda_powertools.utilities.data_classes.dynamo_db_stream_event import AttributeValueType, AttributeValue
580
+ from aws_lambda_powertools.utilities.typing import LambdaContext
581
+
582
+
583
+ @event_source(data_class=DynamoDBStreamEvent)
584
+ def lambda_handler(event: DynamoDBStreamEvent, context: LambdaContext):
585
+ for record in event.records:
586
+ key: AttributeValue = record.dynamodb.keys["id"]
587
+ if key == AttributeValueType.Number:
588
+ # {"N": "123.45"} => "123.45"
589
+ assert key.get_value == key.n_value
590
+ print(key.get_value)
591
+ elif key == AttributeValueType.Map:
592
+ assert key.get_value == key.map_value
593
+ print(key.get_value)
594
+ ```
574
595
575
596
### EventBridge
576
597
0 commit comments