def lambda_handler()

in src/lakeformation_permissions/central/lambda_function.py [0:0]


def lambda_handler(event, context):
    try:
        logger.info('Received {} messages'.format(len(event['Records'])))
        logger.info('messages {}'.format(event))
        for record in event['Records']:
            event_body = json.loads(json.loads(record['body'])['Message'])['perms_to_set']
            logger.info('Processing Permissions for: {}'.format(event_body))
            principal_json, table_json, tableWithColumns_json, perm_json, perm_grant_json = buildjson(event_body)

        logger.info('created permissions JSONs - principal json : {},table_json {},tableWithColumns_json {}, perm_json {} '
        .format(principal_json, table_json, tableWithColumns_json, perm_json))
        
        if event_body['AccessType'].lower() == 'grant':
            logger.info('Calling Grant permissions for {} on resource {} or {} permissions {}'.format(principal_json, table_json, tableWithColumns_json, perm_json))
            response = grant_lf_permissions(principal_json, table_json, tableWithColumns_json, perm_json, perm_grant_json)
        elif event_body['AccessType'].lower() == 'revoke':
            logger.info('Calling Revoke permissions for {} on resource {} or {} permissions {}'.format(principal_json, table_json, tableWithColumns_json, perm_json))
            response = revoke_lf_permissions(principal_json, table_json, tableWithColumns_json, perm_json, perm_grant_json)
        else:
            raise LFAttributeError

    except Exception as e:
        logger.error("Fatal error", exc_info=True)
        raise e
    return