繁体   English   中英

AWS API Gateway 格式错误的 Lambda 响应

[英]AWS API Gateway Malformed Lambda Response

文档指出 json 应该返回包含我拥有的正文、标题和状态代码。 但是,无论出于何种原因,当我在 API 网关中对其进行测试时,它都会返回格式错误的响应。

这是它下面的方法的输出。

"{\\"body\\": 200, \\"headers\\": {\\"Content-type\\": \\"application/json\\"}, \\"statusCode\\": 200}"

def addnumbers(message, context):

    result = message['num1'] + 1
    print(result)
    resp = {
        "statusCode": 200,
         "body":  result,
        "headers": { "Content-type": "application/json"}
    }
    return (json.dumps(resp))

我目前正在传入 num1=1 并且它没有给出任何更好的错误消息。 任何指导将不胜感激。

好吧,扣上答案。

确保您在 API 中所需的任何资源上都启用了代理集成。

现在转到您的 lambda。 看看我之前是如何尝试传入 num1 的。我试图从“事件”或消息中获取它。 这是我绊倒的地方。 另请注意(您不能对主体进行 get),而 lambda 的输入应该是这样的。

{ "queryStringParameters": { "input": "无论你想要 lambda 测试什么输入" } }

所以现在我们已经为 lambda 配置了测试,我们需要对 lambda 本身进行编码。

我把这段代码放在:

def lambda_handler(事件,上下文):

 number = "Hello, " + event['queryStringParameters']['input']
out = {}
out['statusCode'] = 200
out['body'] = number

return (out)

现在如果你测试它应该没问题。

回到 API Gateway 在“查询字符串”部分输入 input=randomname

它现在应该返回 hello, randomname

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM