我正在尝试使用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网关可以正常工作。
对此问题的任何帮助将不胜感激。
答案 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函数出错了,它返回了一个错误。