【发布时间】:2016-10-15 18:56:21
【问题描述】:
我通过以下命令创建了 Serverless 框架的功能:
sls function create some/api
然后创建了schelton代码:
'use strict';
module.exports.handler = function(event, context, cb) {
return cb({
message: 'Go Serverless! Your Lambda function executed successfully!'
});
};
并且,响应模板如下:
s-function.json
"responses": {
"400": {
"statusCode": "400"
},
"default": {
"statusCode": "200",
"responseParameters": {},
"responseModels": {
"application/json;charset=UTF-8": "Empty"
},
"responseTemplates": {
"application/json;charset=UTF-8": ""
}
}
}
但是,当我将错误对象返回给像cb(err, null)这样的回调函数时,错误消息正确显示,但statusCode是200。
如果我改为调用cb("400", err)这样的回调函数,那么statusCode正确返回400,但响应体不好:{"errorMessage":"400"}。
有什么好的设置可以显示bot statusCode(不仅是400,还有401,403,404,500...等等)和错误信息?
【问题讨论】:
-
假设您使用 API 网关来公开 Lambda 函数,这里有一个很好的讨论:stackoverflow.com/questions/31329495/…
-
谢谢!这不是我想象的,但有了它,我可以用另一种方式解决我的问题。我稍后会总结结果。
-
太棒了!期待您的发现。
标签: amazon-web-services aws-lambda serverless-framework