嘿伙计们,这里的任何人都成功地断点了使用 Visual Studio 代码和 nodejs8.10 在本地运行的 lambda 函数?我想知道是不是因为我的项目是打字稿。我已经按照https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging-nodejs.html无济于事。
该函数运行,如果我stopOnEntry: true
在某个文件上停止 vscode,但不在我实际函数的断点上。
输出:
$ sam local invoke ConsumeSQSFunction --no-event --region us-west-2 -d 5858
2019-04-30 11:19:16 Found credentials in shared credentials file: ~/.aws/credentials
2019-04-30 11:19:16 Invoking index.processPublisherServicesQueue (nodejs8.10)
Fetching lambci/lambda:nodejs8.10 Docker container image......
2019-04-30 11:19:17 Mounting /home/dev/Documents/xxxx/main-dir/dist/lambda-section/consume-sqs as /var/task:ro,delegated inside runtime container
Debugger listening on ws://0.0.0.0:5858/74f34edb-cdcd-4da0-82c0-950f5d809fd9
For help see https://nodejs.org/en/docs/inspector
Debugger attached.
START RequestId: 1a4198ca-cceb-1b38-f251-386a239dad19 Version: $LATEST
2019-04-30T18:19:19.800Z 1a4198ca-cceb-1b38-f251-386a239dad19 Hello World!
2019-04-30T18:19:19.800Z 1a4198ca-cceb-1b38-f251-386a239dad19 Processing queue {} [] undefined
END RequestId: 1a4198ca-cceb-1b38-f251-386a239dad19
REPORT RequestId: 1a4198ca-cceb-1b38-f251-386a239dad19 Duration: 199.46 ms Billed Duration: 200 ms Memory Size: 128 MB Max Memory Used: 45 MB
{"statusCode":200,"body":"{\"message\":\"hello world\"}"}
Waiting for the debugger to disconnect...
项目结构:
launch.json
/main-dir
/app
/lambda-section (where I did sam init)
/ConsumeSQS
index.ts
template.yaml
event.json
/etc
/dist
/lambda-section
/ConsumeSQS
index.js
index.js.map
template.yaml 中的相关部分
Resources:
ConsumeSQSFunction:
Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
Properties:
FunctionName: ConsumeSQS
Description: 'Consumes messages from SQS queue'
CodeUri: ../../dist/lambda-section/consume-sqs/
Handler: index.processPublisherServicesQueue
Runtime: nodejs8.10
启动.json:
,
{
"name": "Attach to SAM CLI",
"type": "node",
"request": "attach",
"address": "localhost",
"port": 5858,
// From the sam init example, it would be "${workspaceRoot}/hello_world"
"localRoot": "${workspaceRoot}/main-dir/app/lambda-section",
"remoteRoot": "/var/task",
"protocol": "inspector",
"stopOnEntry": false
}