Не удается найти модуль-обработчик при запуске простой лямбды, развернутой без сервера - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь начать изучение без сервера / лямбды, поэтому я создал простую лямбду и развернул ее с использованием без сервера.

Однако, когда я хочу проверить конечную точку лампы, я получаю 502 назад , Когда я смотрю в журналах, он говорит, что не может найти модуль handler, который не имеет никакого смысла ...

вот журнал:

{
"errorType": "Runtime.ImportModuleError",
"errorMessage": "Error: Cannot find module 'handler'\nRequire stack:\n- 
/var/runtime/UserFunction.js\n- /var/runtime/index.js",
 "trace": [
    "Runtime.ImportModuleError: Error: Cannot find module 'handler'",
"Require stack:",
"- /var/runtime/UserFunction.js",
"- /var/runtime/index.js",
"    at _loadUserApp (/var/runtime/UserFunction.js:100:13)",
"    at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)",
"    at Object.<anonymous> (/var/runtime/index.js:43:30)",
"    at Module._compile (internal/modules/cjs/loader.js:1158:30)",
"    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)",
"    at Module.load (internal/modules/cjs/loader.js:1002:32)",
"    at Function.Module._load (internal/modules/cjs/loader.js:901:14)",
"    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)",
"    at internal/main/run_main_module.js:18:47"
]
}

1 Ответ

1 голос
/ 26 апреля 2020

Обычно это означает, что он не может найти метод, который является начальной точкой для выполнения.

Например, на вашем serverless.yml вы можете получить что-то вроде этого

functions:
  getUsers:
    handler: userFile.handler

this будет означать, что необходимо иметь userFile в той же папке serverless.yml с экспортированным обработчиком метода.

module.exports.hello = async event => {
  return {
    statusCode: 200,
    body: JSON.stringify(
      {
        message: 'Go Serverless v1.0! Your function executed successfully!',
        input: event,
      },
      null,
      2
    ),
  };
};

Обратите внимание, что для него не нужно называть функцию-обработчик, просто имеют одно и то же имя, определенное на serverless.yml

...