def _handler()

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}.")