Malformed Lambda proxy response from AWS API Gateway calling a Lambda

AleMal picture AleMal · Dec 20, 2017 · Viewed 9k times · Source

In my project i create a py function for check and modify my google calendar like this:

def main(event, context):

    ck_app = check(event['calID'], event['datada'], event['dataa'])

    if not ck_app: insert(event['calID'], event['datada'], event['dataa'], event['email'])

    return {
        "isBase64Encoded": False,
        "statusCode": '200',
        "headers": {},
        "body": {'input': event,
                 'busy': ck_app,
                 'guest_email': event['email']}   
    }

when i test it on my lambda all done, but whe i create an API from lambda:

enter image description here

and test it the result is:

Wed Dec 20 13:35:58 UTC 2017 : Execution failed due to configuration error: Malformed Lambda proxy response Wed Dec 20 13:35:58 UTC 2017 : Method completed with status: 502

Thanks in advance

Answer

Liam picture Liam · Dec 20, 2017

API Gateway expects a json body so you should use something like this

import json
return {
    'statusCode': 200,
    'body': json.dumps({'input': event,
                        'busy': ck_app,
                        'guest_email': event['email']})
}

Hope this helps you forward.