Skip to content

Commit 58ad79a

Browse files
fix
1 parent afa145c commit 58ad79a

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

datadog_lambda/dsm.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,17 +62,22 @@ def _dsm_set_sqs_context(event):
6262

6363
def _dsm_set_sns_context(event):
6464
from ddtrace.internal.datastreams.botocore import calculate_sns_payload_size
65+
from datadog_lambda.wrapper import format_err_with_traceback
6566

66-
def sns_payload_calculator(record, context_json):
67-
return calculate_sns_payload_size(record, context_json)
68-
69-
def sns_arn_extractor(record):
70-
sns_data = record.get("Sns")
71-
if not sns_data:
72-
return ""
73-
return sns_data.get("TopicArn", "")
67+
records = event.get("Records")
68+
if records is None:
69+
return
7470

75-
_dsm_set_context_helper(event, "sns", sns_arn_extractor, sns_payload_calculator)
71+
for record in records:
72+
try:
73+
sns_data = record.get("Sns")
74+
if not sns_data:
75+
return ""
76+
arn = sns_data.get("TopicArn", "")
77+
payload_size = calculate_sns_payload_size(record)
78+
_dsm_set_context_helper(record, "sns", arn, payload_size)
79+
except Exception as e:
80+
logger.error(format_err_with_traceback(e))
7681

7782

7883
def _get_dsm_context_from_lambda(message):

0 commit comments

Comments
 (0)