in fast/project-templates/secops-anonymization-pipeline/source/main.py [0:0]
def main(request):
"""
Entry point for Cloud Function triggered by HTTP request.
:param request: payload of HTTP request triggering cloud function
:return:
"""
debug = os.environ.get('DEBUG')
logging.basicConfig(level=logging.INFO)
LOGGER.info('processing http payload')
try:
payload = json.loads(request.data)
except (binascii.Error, json.JSONDecodeError) as e:
raise SystemExit(f'Invalid payload: {e.args[0]}.')
if "EXPORT_DATE" in payload:
export_date = payload.get('EXPORT_DATE')
else:
export_date = date.today().strftime("%Y-%m-%d")
action = payload.get('ACTION')
export_start_datetime = payload.get('EXPORT_START_DATETIME', None)
export_end_datetime = payload.get('EXPORT_END_DATETIME', None)
log_types = payload.get('LOG_TYPES', None)
match action:
case "TRIGGER-EXPORT":
trigger_export(export_date=export_date,
export_start_datetime=export_start_datetime,
export_end_datetime=export_end_datetime,
log_types=log_types)
case "ANONYMIZE-DATA":
anonymize_data(export_date=export_date)
case "IMPORT-DATA":
import_logs(export_date=export_date)
case _:
return "Action must be either 'TRIGGER-EXPORT', 'ANONYMIZE-DATA' or 'IMPORT-DATA'"
return "Success."