def handler()

in lambda/shadowDeployment.py [0:0]


def handler(event, context):
    print("Received event: " + json.dumps(event, indent=2))

    postData = json.loads(json.dumps(event))
    print("postData")
    print(postData)

    payloadIn = postData['body']
    print("payloadIn***")
    print(payloadIn)

    payloadJson = json.loads(payloadIn)

    payload = payloadJson['data']
    print("payload***")
    print(payload)

    response1 = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME_V1,
                                        ContentType='text/csv',
                                        Body=payload)
    print(response1)
    result = json.loads(response1['Body'].read().decode())
    print(result)
    pred = int(result['predictions'][0]['score'])
    predicted_label = 'M' if pred == 1 else 'B'
    print("Predicted result- from model version 1", predicted_label)

    strPayload = str(payload)
    strResult = str(result)

    dbResp1 = table.put_item(
        Item={
            'endpointName': ENDPOINT_NAME_V1,
            'request': strPayload,
            'response': strResult
        }
    )

    print('dbResp1:', dbResp1)

    response2 = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME_V2,
                                        ContentType='text/csv',
                                        Body=payload)
    print(response2)
    result1 = json.loads(response2['Body'].read().decode())
    print(result1)
    pred = int(result1['predictions'][0]['score'])
    predicted_label1 = 'M' if pred == 1 else 'B'
    print("Predicted result- from model version 2", predicted_label1)

    strResult1 = str(result1)

    dbResp2 = table.put_item(
        Item={
            'endpointName': ENDPOINT_NAME_V2,
            'request': strPayload,
            'response': strResult1
        }
    )

    print('dbResp2:', dbResp2)

    requestid = response1['ResponseMetadata']['RequestId']
    my_json_string = json.dumps(
        {'RequestID': requestid, 'Version1 Response': predicted_label, 'Version2 Response': predicted_label1})
    bodytext = predicted_label + predicted_label1
    filename = "shadowdeployment/" + requestid + ".json"

    print("compared prediction result: ", my_json_string)

    return {
        "statusCode": 200,
        "headers": {
            "Content-Type": "application/json"
        },
        "body": json.dumps({
            "result ": result
        })
    }