AWS API网关格式错误的Lambda响应

时间:2017-10-10 17:42:58

标签: json amazon-web-services aws-lambda

documentation表示json应该返回包含正文,标题和状态代码的所有内容。但是,无论出于何种原因,当我在API网关中测试它时,它都会返回格式错误的响应。

这是下面方法的输出。

  

" {\" body \":200,\" header \":{\" 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并且它没有提供任何更好的错误消息。任何指导都将不胜感激。

1 个答案:

答案 0 :(得分:1)

好的,请回答。

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

现在去你的lambda。看看我之前是如何尝试传入num1.I试图从"事件"或者消息。这是我绊倒的地方。另请注意(you can't do a get with a body) 相反,lambda的输入应该是这样的。

  

{     " queryStringParameters":{       "输入":"无论输入是什么,你都希望lambda测试"     }   }

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

我把这段代码放在:

  

def lambda_handler(event,context):

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

return (out)

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

返回API网关 在"查询字符串"部分输入input = randomname

它现在应该以hello,randomname

返回