in lambda/python/rs_integration_function/index.py [0:0]
def _handler(event: dict, context):
logger.structure_logs(append=True, function="pre_routing")
logger.debug(event)
if "Records" in event:
logger.structure_logs(append=True, function="complete_statement")
# This event is an SQS record so this is a finished Redshift Data API event
return sqs_finished_data_api_request_handler(event, context)
elif SQL_STATEMENT in event:
logger.structure_logs(append=True, function="execute_statement")
return handle_redshift_statement_invocation_event(event)
elif STATEMENT_ID in event and ACTION in event and event[ACTION] == DESCRIBE_STATEMENT:
logger.structure_logs(append=True, function="describe_statement")
return describe_statement(get_statement_id(event))
elif STATEMENT_ID in event and ACTION in event and event[ACTION] == GET_STATEMENT_RESULT:
logger.structure_logs(append=True, function="get_statement_result")
return get_statement_result(get_statement_id(event), next_token=event.get(NEXT_TOKEN))
elif STATEMENT_ID in event and ACTION in event and event[ACTION] == CANCEL_STATEMENT:
logger.structure_logs(append=True, function="cancel_statement")
return cancel_statement(get_statement_id(event))
else:
raise InvalidRequest(f"Unsupported invocation event {event}.")