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