Added Lambda invoke capability.

This commit is contained in:
Mike Grima 2016-06-22 12:24:46 -07:00
commit bfa079ec4e
4 changed files with 70 additions and 0 deletions

View file

@ -28,6 +28,25 @@ class LambdaResponse(BaseResponse):
else:
raise ValueError("Cannot handle request")
@classmethod
def invoke(cls, request, full_url, headers):
if request.method == 'POST':
return cls()._invoke(request, full_url, headers)
else:
raise ValueError("Cannot handle request")
def _invoke(self, request, full_url, headers):
lambda_backend = self.get_lambda_backend(full_url)
function_name = request.path.split('/')[-2]
if lambda_backend.has_function(function_name):
fn = lambda_backend.get_function(function_name)
payload = fn.invoke(request, headers)
return 200, headers, payload
else:
return 404, headers, "{}"
def _list_functions(self, request, full_url, headers):
lambda_backend = self.get_lambda_backend(full_url)
return 200, headers, json.dumps({