Skip to content

Commit 9981b70

Browse files
committed
solution1 : try catch
1 parent 1677473 commit 9981b70

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed

datadog_lambda/trigger.py

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -327,19 +327,25 @@ def extract_trigger_tags(event: dict, context: Any) -> dict:
327327
"""
328328
Parses the trigger event object to get tags to be added to the span metadata
329329
"""
330-
trigger_tags = {}
331-
event_source = parse_event_source(event)
332-
if event_source.to_string() is not None and event_source.to_string() != "unknown":
333-
trigger_tags["function_trigger.event_source"] = event_source.to_string()
334-
335-
event_source_arn = get_event_source_arn(event_source, event, context)
336-
if event_source_arn:
337-
trigger_tags["function_trigger.event_source_arn"] = event_source_arn
338-
339-
if event_source.event_type in _http_event_types:
340-
trigger_tags.update(extract_http_tags(event))
341-
342-
return trigger_tags
330+
try:
331+
trigger_tags = {}
332+
event_source = parse_event_source(event)
333+
if event_source.to_string() is not None and event_source.to_string() != "unknown":
334+
trigger_tags["function_trigger.event_source"] = event_source.to_string()
335+
336+
event_source_arn = get_event_source_arn(event_source, event, context)
337+
if event_source_arn:
338+
trigger_tags["function_trigger.event_source_arn"] = event_source_arn
339+
340+
if event_source.event_type in _http_event_types:
341+
trigger_tags.update(extract_http_tags(event))
342+
343+
return trigger_tags
344+
except Exception as e:
345+
import logging
346+
logger = logging.getLogger(__name__)
347+
logger.info(f"Datadog failed to extract trigger tags: {e}")
348+
return {}
343349

344350

345351
_str_http_triggers = [et.value for et in _http_event_types]

tests/test_trigger.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,13 @@ def test_extract_trigger_tags_list_type_event(self):
530530
tags = extract_trigger_tags(event, ctx)
531531
self.assertEqual(tags, {})
532532

533+
def test_extract_trigger_tags_error_handling(self):
534+
event = {"requestContext": "not_a_dict"} # This would cause an error as requestContext is not a dict
535+
ctx = get_mock_context()
536+
537+
tags = extract_trigger_tags(event, ctx)
538+
self.assertEqual(tags, {})
539+
533540

534541
class ExtractHTTPStatusCodeTag(unittest.TestCase):
535542
def test_extract_http_status_code_tag_from_response_dict(self):

0 commit comments

Comments
 (0)