首先,我编写如下的lambda函数:
function jsonResponse(status, header, body) {
return {
headers: Object.assign(header, {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json;charset=utf-8'
}),
statusCode: status,
body: JSON.stringify(body)
}
}
export const hello = async (event, context, cb) => {
const rep = {
message: 'v1.0',
event: event
};
cb(null, jsonResponse(201, {}, rep));
return;
};
工作正常,但是根据无服务器论坛the serverless office forum和blog 代码应该是
function createResponse(status, header, body) {
return {
headers: Object.assign(header, {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json;charset=utf-8'
}),
statusCode: status,
body: JSON.stringify(body)
}
}
export const hello = async (event, context) => {
const rep = {
message: 'v1.0',
event: event
};
return createResponse(201, {}, rep);
};
用于使用回调参数,因为它不是异步处理程序语法的正式组成部分。
我使用与文章相同的版本nodejs 8.10, 但是,当我应用return函数时,出现502错误:
{
"message": "Internal server error"
}
我的无服务器处理程序配置:
functions:
first:
handler: handlers/first.hello
events:
- http:
path: first
method: get
当我尝试在本地运行它时,它将继续运行,而此处理程序没有任何输出。
您能告诉我为什么是内部错误以及如何解决吗?