我不认为你可以通过serverless.yml做到这一点。
你可以从处理这样做:
当前标准的,任何和失败,不指定特定的状态代码或不正确地返回响应到API网关的所有拉姆达的调用是假定为Http状态500(内部服务器错误)。
不过,假设你想返回一个自定义HTTP代码,那么你可以使用的财产以后这样的:
module.exports.my_sample_func = (event, context, callback) ={
var processed_promise = process_your_event(event_body);
// define your default response to be returned
let my_default_response = {
statusCode:500, // add default faliure http code
body:JSON.stringify({error: "Some error occured"}),
headers: {
'Content-Type': 'application/json'
}
};
processed_promise.then(function(resolved, rejected){
// whatever had to be done got completed successfully
response.statusCode = 200;
response.body = JSON.stringify({msg: "Processed successfully"});
callback(null, response);
})
.catch(function(rejected){
callback(response);
});
}
希望这会有所帮助。
你的处理程序代码不应该包含逻辑吗?你正在使用哪个SDK? – kosa
我不希望处理程序控制状态码,因为处理程序中的javascript错误不会响应状态码。 – suku
'因为处理程序中的javascript错误不会响应':您可以使用catch/catch返回代码500的try/catch。关于默认代码,我不知道是否有内置。 – Zanon