@@ -12,15 +12,15 @@ def set_dsm_context(event, event_source):
1212 _dsm_set_sqs_context (event )
1313
1414
15- def _dsm_set_context_helper (record , service_type , arn , payload_size ):
15+ def _dsm_set_context_helper (service_type , arn , payload_size , context_json ):
1616 """
1717 Common helper function for setting DSM context.
1818
1919 Args:
20- event: The Lambda event containing records
2120 service_type: The service type string (example: sqs', 'sns')
2221 arn: ARN from the record
2322 payload_size: payload size of the record
23+ context_json: Datadog context for the record
2424 """
2525 from datadog_lambda .wrapper import format_err_with_traceback
2626 from ddtrace .internal .datastreams import data_streams_processor
@@ -29,8 +29,6 @@ def _dsm_set_context_helper(record, service_type, arn, payload_size):
2929 processor = data_streams_processor ()
3030
3131 try :
32- context_json = _get_dsm_context_from_lambda (record )
33-
3432 ctx = DsmPathwayCodec .decode (context_json , processor )
3533 ctx .set_checkpoint (
3634 ["direction:in" , f"topic:{ arn } " , f"type:{ service_type } " ],
@@ -49,8 +47,10 @@ def _dsm_set_sqs_context(event):
4947
5048 for record in records :
5149 arn = record .get ("eventSourceARN" , "" )
52- payload_size = calculate_sqs_payload_size (record )
53- _dsm_set_context_helper (record , "sqs" , arn , payload_size )
50+ context_json = _get_dsm_context_from_lambda (record )
51+ payload_size = calculate_sqs_payload_size (record , context_json )
52+
53+ _dsm_set_context_helper ("sqs" , arn , payload_size , context_json )
5454
5555
5656def _get_dsm_context_from_lambda (message ):
0 commit comments