Во-первых, я пишу лямбда-функцию, как:
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;
};
Она работает нормально, но в соответствии с форумом без сервера Форум без сервера и блог Коддолжно быть
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, что и в статье, Но когда я применяю возвратфункция, я получаю 502 ошибку:
{
"message": "Internal server error"
}
Моя конфигурация обработчика без сервера:
functions:
first:
handler: handlers/first.hello
events:
- http:
path: first
method: get
Когда я пытаюсь запустить его локально, и он просто продолжает работать без какого-либо вывода для этого обработчика.
Можете ли вы сказать мне, почему это внутренняя ошибка и как ее исправить?