【问题标题】:Malformed Lambda proxy response from AWS API Gateway calling a Lambda来自 AWS API Gateway 调用 Lambda 的格式错误的 Lambda 代理响应
【发布时间】:2018-06-03 02:36:17
【问题描述】:

在我的项目中,我创建了一个 py 函数来检查和修改我的谷歌日历,如下所示:

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']}   
    }

当我在我的 lambda 上测试它时,一切都完成了,但是当我从 lambda 创建一个 API 时:

并测试它的结果是:

2017 年 12 月 20 日星期三 13:35:58 UTC:由于配置错误,执行失败:Lambda 代理响应格式错误 2017 年 12 月 20 日星期三 13:35:58 UTC:方法已完成,状态为:502

提前致谢

【问题讨论】:

    标签: python amazon-web-services aws-lambda aws-api-gateway


    【解决方案1】:

    API Gateway 需要一个 json 主体,因此您应该使用类似这样的内容

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

    希望这对您有所帮助。

    【讨论】:

    • 非常感谢!仔细阅读错误我发现错误似乎与返回单个参数的检查方法调用有关:ck_app = check(event['calID'], event['datada'], event['dataa'])。有可能吗??
    • 您好,恐怕无法真正帮助您。我只是自定义 lambda 但不知道检查功能是如何工作的。建议提出一个新问题来找出答案。
    • @AleMal 你只需要在“body”中使用 json.dumps 传递字符串
    猜你喜欢
    • 2021-01-08
    • 2018-03-22
    • 1970-01-01
    • 2017-09-28
    • 2017-10-04
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多