def retrieve_aggregated_features()

in src/lambda/InvokeFraudEndpointLambda/lambda_function.py [0:0]


def retrieve_aggregated_features(feature_group_name, feature_group_identifier, feature_key_list):
    feature_vector = {}
        
    # Set Feature Group record_identifier which is actually the 'cc_num' field 
    record_identifier = str(int(feature_group_identifier))

    # Call Yavapai Runtime to retrieve records from online feature store
    transaction_record = featurestore_get_record(feature_group_name, record_identifier)
    
    # If no record is returned, no need to extract items
    if transaction_record is None:
        logging.error(f'FeatureStore Group {feature_group_name} did NOT return record for identifier {feature_group_identifier}')
        return None
        
    logging.info('Retrieved Record from FeatureStore: {}'.format(json.dumps(transaction_record)))
    
    for key in feature_key_list:
        val = get_feature_value(transaction_record, key)
        logging.debug(f'Agg Record: key: {key} value: {val}')
        if val is not None:
            feature_vector[key] = val

    logging.info(f'Resulting feature_vector dict: {feature_vector}')
    
    return feature_vector