Skip to content

Commit eb39c03

Browse files
committed
Merge branch 'kinesis' of github.com:roger-zhangg/aws-lambda-powertools-python into kinesis
2 parents d1fc1c5 + 4ed0e66 commit eb39c03

File tree

3 files changed

+35
-2
lines changed

3 files changed

+35
-2
lines changed

aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,41 @@ class KinesisFirehoseDataTransformationResponse:
125125
records : List[KinesisFirehoseResponseRecord]
126126
records of Kinesis Data Firehose response object,
127127
optional parameter at start. can be added later using `add_record` function.
128+
129+
Examples
130+
--------
131+
132+
**Transforming data records**
133+
134+
```python
135+
from aws_lambda_powertools.utilities.data_classes import (
136+
KinesisFirehoseDataTransformationRecord,
137+
KinesisFirehoseDataTransformationResponse,
138+
KinesisFirehoseEvent,
139+
)
140+
from aws_lambda_powertools.utilities.serialization import base64_from_json
141+
from aws_lambda_powertools.utilities.typing import LambdaContext
142+
143+
144+
def lambda_handler(event: dict, context: LambdaContext):
145+
firehose_event = KinesisFirehoseEvent(event)
146+
result = KinesisFirehoseDataTransformationResponse()
147+
148+
for record in firehose_event.records:
149+
payload = record.data_as_text # base64 decoded data as str
150+
151+
## generate data to return
152+
transformed_data = {"tool_used": "powertools_dataclass", "original_payload": payload}
153+
processed_record = KinesisFirehoseDataTransformationRecord(
154+
record_id=record.record_id,
155+
data=base64_from_json(transformed_data),
156+
)
157+
158+
result.add_record(processed_record)
159+
160+
# return transformed records
161+
return result.asdict()
162+
```
128163
"""
129164

130165
records: List[KinesisFirehoseDataTransformationRecord] = field(default_factory=list)

examples/event_sources/src/kinesis_firehose_response.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ def lambda_handler(event: dict, context: LambdaContext):
1616

1717
## generate data to return
1818
transformed_data = {"tool_used": "powertools_dataclass", "original_payload": payload}
19-
2019
processed_record = KinesisFirehoseDataTransformationRecord(
2120
record_id=record.record_id,
2221
data=base64_from_json(transformed_data),

tests/unit/data_classes/test_kinesis_firehose_response.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ def test_kinesis_firehose_create_response():
9292
for record in parsed_event.records:
9393
metadata_partition = KinesisFirehoseDataTransformationRecordMetadata(partition_keys={"year": "2023"})
9494
processed_record = record.build_data_transformation_response(
95-
result="Ok",
9695
metadata=metadata_partition,
9796
data=base64_from_str(arbitrary_data),
9897
)

0 commit comments

Comments
 (0)