格式错误的Lambda代理响应

时间:2017-08-30 18:18:49

标签: node.js lambda aws-lambda aws-api-gateway

我正在尝试使用POST方法访问Lambda函数。当我尝试测试POST资源时,我将其放入请求正文中{"article_url": "http://technewstt.com/bd1108/"}

这使得API网关以Execution failed due to configuration error: Malformed Lambda proxy response回复我的代码如下。

exports.handler = (event, context, callback) => {
//event = {"article_url": "http://technewstt.com/bd1108/"};
console.log(event.article_url);
var http = require('http');
var TextAPI = require('textapi');
var textapi = new TextAPI({
    application_id: "randomn numbers",
    application_key: "randomn numbers"
});
textapi.summarize({
    url: event.article_url,
    sentences_number: 3
}, function(error, response) {
if (error === null) {
    response.sentences.forEach(function(s) {
    console.log(s);
    //var body = JSON.parse(s);
    // TODO implement
    //callback(null, s);
    callback(null, {"statusCode": 200, "body":  JSON.stringify(s)});
    });
}

});

};

请注意,如果我取消注释第二行,API网关可以正常工作。

对此问题的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您正在使用Lambda Proxy集成,它始终需要格式为http://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-output-format

的输出

如果lambda响应格式是意外的,则返回“格式错误的Lambda代理响应”。您可以使用完整的请求/响应启用日志记录,该响应应显示从lambda返回的响应。很可能你的lambda函数出错了,它返回了一个错误。