def lambda_handler()

in cosmos-db-migration-utility/src/lambda/app-request-reader/lambda_function.py [0:0]


def lambda_handler(event, context):
    logger.info("Lambda: app-request-reader was invoked with event: %s.", event)
    try:
        response = {}
        payload = {}
        first_one = True
        for record in event['Records']:
            payload = record["body"]
            request = json.loads(payload)
            logger.info("Completed loading payload information from message: %s.", json.dumps(request))
            if first_one:
                response = process_request(request)
                first_one = False
            else:
                # process only one. send the payload back to the queue again
                logger.info("Found more than one message in the request. Resending it back to queue. Payload: %s.", json.dumps(request))
                send_sqs_message("app-request-queue", request)
        data = {
            'statusCode': 200,
            'input': payload,
            'output': {
                "operation": "app-request-reader",
                "data": response
            }
        }
        logging.info("Successfully completed processing app-request-reader sqs messages. Result: %s.", json.dumps(data))
        return data   
    except Exception as e:
        stack_trace = traceback.format_stack()
        data = {
            "status": "error",
            "input": payload,
            "output": {
                "operation": "app-request-reader",
                "error": str(e),
                "stack_trace": stack_trace
            }
        }
        logging.error("Failed while processing app-requets-reader messages. Result: %s.", json.dumps(data))
        raise