diff --git a/stacks/handlers_stack.py b/stacks/handlers_stack.py index ab5f82c3..fbfe6514 100644 --- a/stacks/handlers_stack.py +++ b/stacks/handlers_stack.py @@ -163,7 +163,7 @@ def endpoint(self): "./supplementary_files/handlers_stack/lambdas/invoked_by_apigw_cloudformation" ), environment={ - "EvalEngineLambdalithFunctionName": self.lambda_eval_engine_lambdalith.function_name, + "RawPaCResultsBucket": self.bucket_raw_pac_results.bucket_name, }, layers=[ aws_lambda_python_alpha.PythonLayerVersion( diff --git a/supplementary_files/handlers_stack/lambdas/invoked_by_apigw_cloudformation/lambda_function.py b/supplementary_files/handlers_stack/lambdas/invoked_by_apigw_cloudformation/lambda_function.py index 2fab992b..e44a54c8 100644 --- a/supplementary_files/handlers_stack/lambdas/invoked_by_apigw_cloudformation/lambda_function.py +++ b/supplementary_files/handlers_stack/lambdas/invoked_by_apigw_cloudformation/lambda_function.py @@ -1,6 +1,7 @@ import json import re import os +import uuid import boto3 from botocore.exceptions import ClientError @@ -171,12 +172,27 @@ def get_host(full_invoke_url): return True +def generate_s3_uuid_uri(*,bucket): + + def generate_uuid(): + return str(uuid.uuid4()) + + uuid = generate_uuid() + + s3_uri = f's3://{bucket}/{uuid}' + + return s3_uri + def lambda_handler(event,context): print(f'event:\n{event}\ncontext:\n{context}') + # instantiate + r = RequestParser(event=event) + # parse event + request_json_body = json.loads(event['body']) print(f'request_json_body:\n{request_json_body}') @@ -189,11 +205,19 @@ def lambda_handler(event,context): print(f'authorization_header:\n{authorization_header}') + # fail fast + fail_fast = r.fail_fast() if fail_fast: return fail_fast + # set result path + + raw_result_report_s3_uri = generate_s3_uuid_uri(bucket=os.environ['RawPaCResultsBucket']) + + # set input + eval_engine_input = { "Input":request_json_body['Input'], "ConsumerMetadata": r.consumer_metadata, @@ -204,12 +228,17 @@ def lambda_handler(event,context): print(f'eval_engine_input:\n{eval_engine_input}') + # sign request + sign_request( full_invoke_url = headers['x-eval-engine-invoke-url'], region = region, input = eval_engine_input ) + # set response + + control_broker_request_status = { "Request":{ "Requestor": { @@ -230,15 +259,10 @@ def lambda_handler(event,context): "Raw":{ "S3Uri":"" }, - "OutputHandlers":[ - { - "DefaultParsed": { - "S3Uri":"" - } - } - ] } } } + print(f'control_broker_request_status:\n{control_broker_request_status}') + return control_broker_request_status \ No newline at end of file