Skip to content

Commit 068c2fc

Browse files
committed
fix legacy lambda parsing with new header
1 parent a6464b4 commit 068c2fc

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

datadog_lambda/tracing.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,13 @@ def is_legacy_lambda_step_function(event):
432432
"""
433433
Check if the event is a step function that called a legacy lambda
434434
"""
435-
event = event.get("Payload", {})
436-
return "Execution" in event and "StateMachine" in event and "State" in event
435+
if not isinstance(event, dict) or "Payload" not in event:
436+
return False
437+
438+
event = event.get("Payload")
439+
return "_datadog" in event or (
440+
"Execution" in event and "StateMachine" in event and "State" in event
441+
)
437442

438443

439444
def extract_context_custom_extractor(extractor, event, lambda_context):
@@ -688,6 +693,7 @@ def create_inferred_span(
688693
event_source: _EventSource = None,
689694
decode_authorizer_context: bool = True,
690695
):
696+
logger.debug("abhinav event %s", event)
691697
if event_source is None:
692698
event_source = parse_event_source(event)
693699
try:

tests/test_tracing.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -738,6 +738,17 @@ def test_is_legacy_lambda_step_function(self):
738738
}
739739
self.assertTrue(is_legacy_lambda_step_function(sf_event))
740740

741+
sf_event = {
742+
"Payload": {
743+
"_datadog": {
744+
"x-datadog-trace-id-hash": "fed93f8c162880cb9aa90fcd1f8395383835841d5470d30215f3dd52906ebc58",
745+
"x-datadog-parent-id-hash": "c5eb94cc9220ab5783e1db53debd54b8c93f6f2a3eae1c680d7b849f2d34e551",
746+
"serverless-version": "v2",
747+
}
748+
}
749+
}
750+
self.assertTrue(is_legacy_lambda_step_function(sf_event))
751+
741752
sf_event = {
742753
"Execution": {
743754
"Id": "665c417c-1237-4742-aaca-8b3becbb9e75",

0 commit comments

Comments
 (0)