Skip to content
This repository was archived by the owner on Dec 11, 2023. It is now read-only.

Commit 358d399

Browse files
authored
Merge pull request #61 from triggermesh/ce-context
CE context headers in Python 3.7 runtime
2 parents 6a1c37c + d8b2ac0 commit 358d399

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

python37/bootstrap.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,16 +134,19 @@ def to_json(obj):
134134
return json.dumps(obj, default=decimal_serializer)
135135

136136

137-
def handle_event_request(lambda_runtime_client, request_handler, invoke_id, event_body, client_context_json, cognito_identity_json, invoked_function_arn, epoch_deadline_time_in_ms):
137+
def handle_event_request(lambda_runtime_client, request_handler, invoke_id, event_body, client_context_json, cloudevents_context_json, cognito_identity_json, invoked_function_arn, epoch_deadline_time_in_ms):
138138
error_result = None
139139
try:
140140
client_context = None
141141
if client_context_json:
142142
client_context = try_or_raise(lambda: json.loads(client_context_json), "Unable to parse client context json")
143+
cloudevents_context = None
144+
if cloudevents_context_json:
145+
cloudevents_context = try_or_raise(lambda: json.loads(cloudevents_context_json), "Unable to parse cloudevents context json")
143146
cognito_identity = None
144147
if cognito_identity_json:
145148
cognito_identity = try_or_raise(lambda: json.loads(cognito_identity_json), "Unable to parse cognito identity json")
146-
context = LambdaContext(invoke_id, client_context, cognito_identity, epoch_deadline_time_in_ms, invoked_function_arn)
149+
context = LambdaContext(invoke_id, client_context, cloudevents_context, cognito_identity, epoch_deadline_time_in_ms, invoked_function_arn)
147150
json_input = try_or_raise(lambda: json.loads(event_body.decode()), "Unable to parse input as json")
148151
result = request_handler(json_input, context)
149152
result = try_or_raise(lambda: to_json(result), "An error occurred during JSON serialization of response")
@@ -220,14 +223,15 @@ def set_obj_from_dict(obj, _dict, fields=None):
220223

221224

222225
class LambdaContext(object):
223-
def __init__(self, invoke_id, client_context, cognito_identity, epoch_deadline_time_in_ms, invoked_function_arn=None):
226+
def __init__(self, invoke_id, client_context, cloudevents_context, cognito_identity, epoch_deadline_time_in_ms, invoked_function_arn=None):
224227
self.aws_request_id = invoke_id
225228
self.log_group_name = os.environ.get('AWS_LAMBDA_LOG_GROUP_NAME')
226229
self.log_stream_name = os.environ.get('AWS_LAMBDA_LOG_STREAM_NAME')
227230
self.function_name = os.environ.get("AWS_LAMBDA_FUNCTION_NAME")
228231
self.memory_limit_in_mb = os.environ.get('AWS_LAMBDA_FUNCTION_MEMORY_SIZE')
229232
self.function_version = os.environ.get('AWS_LAMBDA_FUNCTION_VERSION')
230233
self.invoked_function_arn = invoked_function_arn
234+
self.ce = cloudevents_context
231235

232236
self.client_context = make_obj_from_dict(ClientContext, client_context)
233237
if self.client_context is not None:
@@ -398,6 +402,7 @@ def main():
398402
event_request.invoke_id,
399403
event_request.event_body,
400404
event_request.client_context,
405+
event_request.cloudevents_context,
401406
event_request.cognito_identity,
402407
event_request.invoked_function_arn,
403408
event_request.deadline_time_in_ms)

python37/lambda_runtime_client.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ def wait_next_invocation(self):
6161
invoked_function_arn=headers["Lambda-Runtime-Invoked-Function-Arn"],
6262
deadline_time_in_ms=int(headers["Lambda-Runtime-Deadline-Ms"]),
6363
client_context=headers["Lambda-Runtime-Client-Context"],
64+
cloudevents_context=headers["Lambda-Runtime-Cloudevents-Context"],
6465
cognito_identity=headers["Lambda-Runtime-Cognito-Identity"],
6566
event_body=response_body
6667
)

0 commit comments

Comments
 (0)