【发布时间】:2021-06-03 12:09:24
【问题描述】:
我创建了一个带有 serverless framework 的 AWS Lambda,并使用他们的模板创建了一个 lambda:
sls create --template aws-nodejs-typescript
当我尝试在本地环境中运行默认的 'hello' 函数时,它工作得很好:
Serverless: Compiling with Typescript...
Serverless: Typescript compiled.
{
"statusCode": 200,
"body": "{\"message\":\"Hello {\\\"headers\\\":{\\\"Content-Type\\\":\\\"application/json\\\"},\\\"body\\\":{\\\"name\\\":\\\"Frederic\\\"}}, welcome to the exciting Serverless world!\",\"event\":{\"headers\":{\"Content-Type\":\"application/json\"},\"body\":{\"name\":\"Frederic\"}}}"
}
✨ Done in 7.37s.
但是,我最初的目标是弄清楚如何在我的本地环境中调试/跟踪这个 lambda,并能够放置刹车点。当我尝试运行它 F5 时,我收到一个错误:
[offline] Loading handler... (/Users/mickey/vault/github/backend-work/merlin-lambdas/be-ts-sponsored/.build/.webpack/service/src/functions/hello/handler)
[offline] _____ HANDLER RESOLVED _____
offline: Failure: Cannot find module '/Users/mickey/vault/github/backend-work/merlin-lambdas/be-ts-sponsored/.build/.webpack/service/src/functions/hello/handler'
Require stack:
- /Users/mickey/vault/github/backend-work/merlin-lambdas/be-ts-sponsored/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js
我的问题是我将如何跟踪/调试这个 lambda,考虑到它是用 webpack 设置的。 有没有办法调试/跟踪它,或者我必须删除 webpack 才能调试?
感谢您的帮助。
PS: 我的 vcode launch.json 包含:
{
"type": "node",
"request": "launch",
"name": "DEBUG",
"runtimeExecutable": "npm",
"cwd": "${workspaceRoot}",
"runtimeArgs": [
"run-script",
"debug"
],
"console": "integratedTerminal",
"restart": true,
"internalConsoleOptions": "neverOpen",
"port": 9229
}
和package.json:
"scripts": {
"start": "serverless offline -s dev",
"build": "yarn tsc",
"tsc": "tsc --project tsconfig.json",
"debug": "export SLS_DEBUG=* && node --inspect ./node_modules/.bin/serverless offline -s dev",
"test": "echo \"Error: no test specified\" && exit 1"
},
【问题讨论】:
标签: typescript amazon-web-services webpack lambda serverless