File tree Expand file tree Collapse file tree 2 files changed +6
-8
lines changed
examples/event_sources/src Expand file tree Collapse file tree 2 files changed +6
-8
lines changed Original file line number Diff line number Diff line change 1
- import base64
2
-
3
1
from aws_lambda_powertools .utilities .data_classes import (
4
2
KinesisFirehoseDataTransformationRecord ,
5
3
KinesisFirehoseDataTransformationResponse ,
4
+ KinesisFirehoseEvent ,
6
5
)
7
6
from aws_lambda_powertools .utilities .serialization import base64_from_json
8
7
from aws_lambda_powertools .utilities .typing import LambdaContext
9
8
10
9
11
10
def lambda_handler (event : dict , context : LambdaContext ):
11
+ firehose_event = KinesisFirehoseEvent (event )
12
12
result = KinesisFirehoseDataTransformationResponse ()
13
13
14
- for record in event ["records" ]:
15
- print (record ["recordId" ])
16
- payload = base64 .b64decode (record ["data" ]).decode ("utf-8" )
17
- ## do all kind of stuff with payload
14
+ for record in firehose_event .records :
15
+ payload = record .data_as_text # base64 decoded data as str
16
+
18
17
## generate data to return
19
18
transformed_data = {"tool_used" : "powertools_dataclass" , "original_payload" : payload }
20
19
21
20
processed_record = KinesisFirehoseDataTransformationRecord (
22
- record_id = record [ "recordId" ] ,
21
+ record_id = record . record_id ,
23
22
data = base64_from_json (transformed_data ),
24
23
)
25
24
result .add_record (processed_record )
Original file line number Diff line number Diff line change @@ -92,7 +92,6 @@ def test_kinesis_firehose_create_response():
92
92
for record in parsed_event .records :
93
93
metadata_partition = KinesisFirehoseDataTransformationRecordMetadata (partition_keys = {"year" : "2023" })
94
94
processed_record = record .build_data_transformation_response (
95
- result = "Ok" ,
96
95
metadata = metadata_partition ,
97
96
data = base64_from_str (arbitrary_data ),
98
97
)
You can’t perform that action at this time.
0 commit comments