Skip to content

Commit 1589c74

Browse files
fix
1 parent 7707aff commit 1589c74

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

5757
def _dsm_set_sns_context(event):
5858
from ddtrace.internal.datastreams.botocore import calculate_sns_payload_size
59+
from datadog_lambda.wrapper import format_err_with_traceback
5960

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

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

7176

7277
def _get_dsm_context_from_lambda(message):

0 commit comments

Comments
 (0)