def custom_resource()

in source/lambda/solution-helper/lambda_function.py [0:0]


def custom_resource(event, _):
    request_type = event['RequestType']
    resource_properties = event['ResourceProperties']
    resource = resource_properties['Resource']

    if resource == 'UUID' and request_type == 'Create':
        random_id = str(uuid.uuid4())
        helper.Data.update({ 'UUID': random_id })
    elif resource == 'AnonymousMetric':
        try:
            metrics_data = _sanitize_data(copy(resource_properties))
            metrics_data['RequestType'] = request_type

            headers = { 'Content-Type': 'application/json' }
            payload = {
                'Solution': resource_properties['SolutionId'],
                'UUID': resource_properties['UUID'],
                'TimeStamp': datetime.utcnow().isoformat(),
                'Data': metrics_data
            }

            logger.info(f'Sending payload: {payload}')
            response = requests.post('https://metrics.awssolutionsbuilder.com/generic', json=payload, headers=headers)
            logger.info(f'Response from metrics endpoint: {response.status_code} {response.reason}')
        except requests.exceptions.RequestException:
            logger.exception('Could not send usage data')
        except Exception:
            logger.exception('Unknown error when trying to send usage data')