我似乎无法使用amazon api网关设置错误的集成响应

我添加了一个集成响应,但它没有返回400错误,而是继续返回200响应
{
"errorMessage": "foose",
"errorType": "Error",
"stackTrace": [
"exports.handler (/var/task/index.js:11:19)"
]
}发布于 2015-07-29 14:33:46
如果您使用的是Java语言,则需要抛出异常。我犯了一个错误,试图返回错误信息。Lambda错误正则表达式解析异常消息,因此如果抛出以下代码:
throw new Exception("Failed: Something bad happened!");并将您的foo.*替换为Failed: .*,它将使用400状态代码。
如果您使用的是NodeJS,则可以使用context.fail('Failed: Something bad happened!');获得相同的结果
发布于 2016-08-04 17:48:56
.*"Failed:".*这是Lambda Regex的正确语法。此外,在nodeJS中(根据上面的示例),更容易构造自己的错误对象并添加状态,以便更容易地映射,例如:
var myError = {}
myError.status = "userError"; //use this for 400 and "serverError" for 500
myError.message = err.stackTrace; //message body最后,你需要返回
context.fail(JSON.stringify(myError));
如果您没有正确设置响应映射。
https://stackoverflow.com/questions/31346577
复制相似问题