Skip to content

Commit 046ff89

Browse files
authored
fix: Ensure injected headers are str (#325)
The python3.7 runtime cannot serialize byte strings
1 parent a3ea6ac commit 046ff89

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

datadog_lambda/wrapper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ def _inject_authorizer_span_headers(self, request_id):
236236
injected_headers[Headers.Parent_Span_Finish_Time] = finish_time_ns
237237
if request_id is not None:
238238
injected_headers[Headers.Authorizing_Request_Id] = request_id
239-
datadog_data = base64.b64encode(json.dumps(injected_headers).encode())
239+
datadog_data = base64.b64encode(json.dumps(injected_headers).encode()).decode()
240240
self.response.setdefault("context", {})
241241
self.response["context"]["_datadog"] = datadog_data
242242

tests/test_wrapper.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,9 @@ def lambda_handler(event, context):
548548
lambda_handler.inferred_span = mock_span
549549
lambda_handler.make_inferred_span = False
550550
result = lambda_handler(lambda_event, lambda_context)
551-
inject_data = json.loads(base64.b64decode(result["context"]["_datadog"]))
551+
raw_inject_data = result["context"]["_datadog"]
552+
self.assertIsInstance(raw_inject_data, str)
553+
inject_data = json.loads(base64.b64decode(raw_inject_data))
552554
self.assertEquals(inject_data[TraceHeader.PARENT_ID], "123")
553555
self.assertEquals(inject_data[TraceHeader.TRACE_ID], "456")
554556
self.assertEquals(inject_data[TraceHeader.SAMPLING_PRIORITY], "1")

0 commit comments

Comments
 (0)