格式错误的Lambda代理响应
我试图使用POST
方法访问Lambda函数。当我尝试测试我放入Request主体的POST资源时
{"article_url": "/"}
这使得API网关响应Execution failed due to configuration error: Malformed Lambda proxy response
我的代码如下。
exports.handler = (event, context, callback) => {
//event = {"article_url": "/"};
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网关工作正常。
任何有关此问题的帮助将不胜感激。
回答如下:您正在使用Lambda代理集成,它始终需要格式为http://docs.aws.amazon/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-output-format的输出
如果lambda响应格式是意外的,则返回“格式错误的Lambda代理响应”。您可以使用完整的请求/响应启用日志记录,该响应应显示从lambda返回的响应。很可能你的lambda函数出错了,它返回了一个错误。
格式错误的Lambda代理响应
我试图使用POST
方法访问Lambda函数。当我尝试测试我放入Request主体的POST资源时
{"article_url": "/"}
这使得API网关响应Execution failed due to configuration error: Malformed Lambda proxy response
我的代码如下。
exports.handler = (event, context, callback) => {
//event = {"article_url": "/"};
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网关工作正常。
任何有关此问题的帮助将不胜感激。
回答如下:您正在使用Lambda代理集成,它始终需要格式为http://docs.aws.amazon/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-output-format的输出
如果lambda响应格式是意外的,则返回“格式错误的Lambda代理响应”。您可以使用完整的请求/响应启用日志记录,该响应应显示从lambda返回的响应。很可能你的lambda函数出错了,它返回了一个错误。