Hey guys anyone here had success breakpointing a lambda function ran locally with visual studio code and nodejs8.10? I wonder if it's because my project is typescript. I've followed https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging-nodejs.html to no avail.
The function runs, if I do stopOnEntry: true
vscode stops on some file, but not on my actual function's breakpoints.
Output:
$ 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...
Project structure:
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
Relevant section from 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
launch.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
}