@@ -556,21 +556,42 @@ attributes values (`AttributeValue`), as well as enums for stream view type (`St
556556
557557=== "app.py"
558558
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+ ```
574595
575596### EventBridge
576597
0 commit comments