@@ -254,8 +254,7 @@ def extract_context_from_sqs_or_sns_event_or_context(
254254 if config .data_streams_enabled
255255 else [event .get ("Records" )[0 ]]
256256 )
257- is_first_record = True
258- for record in records :
257+ for idx , record in enumerate (records ):
259258 try :
260259 source_arn = record .get ("eventSourceARN" , "" )
261260 dsm_data = None
@@ -310,7 +309,7 @@ def extract_context_from_sqs_or_sns_event_or_context(
310309 logger .debug (
311310 "Failed to extract Step Functions context from SQS/SNS event."
312311 )
313- if is_first_record :
312+ if idx == 0 :
314313 context = propagator .extract (dd_data )
315314 dsm_data = dd_data
316315 else :
@@ -330,7 +329,7 @@ def extract_context_from_sqs_or_sns_event_or_context(
330329 logger .debug (
331330 "Found dd-trace injected trace context from AWSTraceHeader"
332331 )
333- if is_first_record :
332+ if idx == 0 :
334333 context = Context (
335334 trace_id = int (trace_id_parts [2 ][8 :], 16 ),
336335 span_id = int (x_ray_context ["parent_id" ], 16 ),
@@ -341,7 +340,6 @@ def extract_context_from_sqs_or_sns_event_or_context(
341340
342341 # Set DSM checkpoint once per record
343342 _dsm_set_checkpoint (dsm_data , event_type , source_arn )
344- is_first_record = False
345343
346344 return context if context else extract_context_from_lambda_context (lambda_context )
347345
@@ -410,19 +408,18 @@ def extract_context_from_kinesis_event(event, lambda_context):
410408 else event .get ("Records" )
411409 )
412410 context = None
413- is_first_record = True
414- for record in records :
411+ for idx , record in enumerate (records ):
415412 dsm_data = None
416413 try :
417414 source_arn = record .get ("eventSourceARN" , "" )
418415 kinesis = record .get ("kinesis" )
419416 if not kinesis :
420417 context = (
421418 extract_context_from_lambda_context (lambda_context )
422- if is_first_record
419+ if idx == 0
423420 else context
424421 )
425- is_first_record = False
422+ _dsm_set_checkpoint ( None , "kinesis" , source_arn )
426423 continue
427424 data = kinesis .get ("data" )
428425 if data :
@@ -434,13 +431,12 @@ def extract_context_from_kinesis_event(event, lambda_context):
434431 data_obj = json .loads (data_str )
435432 dd_ctx = data_obj .get ("_datadog" )
436433 if dd_ctx :
437- if is_first_record :
434+ if idx == 0 :
438435 context = propagator .extract (dd_ctx )
439436 dsm_data = dd_ctx
440437 except Exception as e :
441438 logger .debug ("The trace extractor returned with error %s" , e )
442439 _dsm_set_checkpoint (dsm_data , "kinesis" , source_arn )
443- is_first_record = False
444440 return context if context else extract_context_from_lambda_context (lambda_context )
445441
446442
0 commit comments