def handler()

in source/anonymous-data-logger/anonymous-data-logger.py [0:0]


def handler(event, context):
    print("We got this event:\n", event)
    # Each resource returns a promise with a json object to return cloudformation.
    try:
        requestType = event['RequestType']
        resource = event['ResourceProperties']['Resource']
        config = event['ResourceProperties']
        # Remove ServiceToken (lambda arn) to avoid sending AccountId
        config.pop("ServiceToken", None)
        config.pop("Resource", None)
        # Add some useful fields related to stack change
        config["CFTemplate"] = (
                requestType + "d"
        )  # Created, Updated, or Deleted
        responseData = {}
        print('Request::{} Resource::{}'.format(requestType, resource))
        if requestType == 'Create' or requestType == 'Update':
            if resource == 'UUID':
                responseData = {'UUID':str(uuid.uuid4())}
                id = responseData['UUID']
                cfn.send(event, context, 'SUCCESS', responseData, id)
            elif resource == 'AnonymousMetric':
                Metrics.send_metrics(config)
                id = 'Metrics Sent'
                cfn.send(event, context, 'SUCCESS', responseData, id)
            else:
                print('Create failed, {} not defined in the Custom Resource'.format(resource))
                cfn.send(event, context, 'FAILED', {}, context.log_stream_name)
        elif requestType == 'Delete':
            print('RESPONSE:: {}: Not required to report data for delete request.'.format(resource))
            cfn.send(event, context, 'SUCCESS', {})
        else:
            print('RESPONSE:: {} Not supported'.format(requestType))
    except Exception as e:
        print('Exception: {}'.format(e))
        cfn.send(event, context, 'FAILED', {}, context.log_stream_name)
        print(e)