Skip to content

Commit 8724294

Browse files
committed
docs(data_classes): fix missing dynamodb stream get_type/value
1 parent b8bc313 commit 8724294

File tree

1 file changed

+36
-15
lines changed

1 file changed

+36
-15
lines changed

docs/utilities/data_classes.md

+36-15
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)