def lambda_handler()

in functions/source/bootstrap_redshift/bootstrap_redshift.py [0:0]


def lambda_handler(event, context):
    response_data = {}
    try:
        logger.debug("Received event: %s", json.dumps(event))
        logger.debug("Event type: %s", event['RequestType'])
        logger.info(event)
        if event['RequestType'] in ['Create','Update']:
            is_processed = True
            if not valid_properties(event, context,
                                    ['DatabaseName', 'DatabasePort', 'MasterUsername', 'MasterUserPassword',
                                     'RedshiftCluster', 'BucketName']):
                raise RuntimeError("Missing one of the custom lambda properties..")
            is_processed = insert_records(event)
            if not is_processed:
                raise RuntimeError("Failed to create or load  data")
            if is_processed:
                response_data['Message'] = "dataloading creation successful"
                send(event, context, SUCCESS, response_data, None)
            else:
                response_data['Message'] = "dataloading creation failed"
                send(event, context, FAILED, response_data, None)
        elif event['RequestType'] == 'Delete':
            try:
                response_data['Message'] = 'Delete redshift cluster'
                send(event, context, SUCCESS, response_data, event['PhysicalResourceId'])
            except Exception as ex:
                is_processed = False
                logger.info("Exception during get database details, failed to delete..." + str(ex))
                send(event, context, FAILED, response_data, event['PhysicalResourceId'])
                return
    except Exception as e:
        response_data['Message'] = "Unexpected error: " + str(type(e)) + ": " + str(e.args)
        print(response_data['Message'])
        send(event, context, FAILED, response_data, None)

    return