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