Skip to content

Commit 04b3727

Browse files
fix
1 parent 58ba3ed commit 04b3727

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
@@ -58,17 +58,22 @@ def _dsm_set_sqs_context(event):
5858

5959
def _dsm_set_sns_context(event):
6060
from ddtrace.internal.datastreams.botocore import calculate_sns_payload_size
61+
from datadog_lambda.wrapper import format_err_with_traceback
6162

62-
def sns_payload_calculator(record, context_json):
63-
return calculate_sns_payload_size(record, context_json)
64-
65-
def sns_arn_extractor(record):
66-
sns_data = record.get("Sns")
67-
if not sns_data:
68-
return ""
69-
return sns_data.get("TopicArn", "")
63+
records = event.get("Records")
64+
if records is None:
65+
return
7066

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

7378

7479
def _get_dsm_context_from_lambda(message):

0 commit comments

Comments
 (0)