aws-samples / aws-samples/aws-lambda-extensions

Unable to debug with SAM local invoke in Node.js example

Ouverte
#66 7 commentaires 7 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Go
Étoiles
487
Forks
144
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

Hi all,
in `nodejs-example-extension` example for Node.js platform something during registration phase brakes the debugger when runs locally on VS Code using `sam local invoke --port 6767 ...` on a Lambda that includes this layer.
The following is a snap of the debug logs when launched from VS Code:
```
START RequestId: 05da599b-f76d-494e-905b-bead9860f186 Version: $LATEST
nodejs-example-extension launching extension
Debugger listening on ws://0.0.0.0:6767/95282789-af6d-4c40-b544-b1d70e0650c2
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
hello from extension
register
extensionId 0e16eae5-5e84-4b22-a204-c54424793f69
next
Starting inspector on 0.0.0.0:6767 failed: address already in use
invoke
next
...
```
notice the **Starting inspector on 0.0.0.0:6767 failed: address already in use** error line in logs, after that all set breakpoints are ignored and it's impossible to debug every Lambdas.

this is the VS Code debug task setup:
```
{
"name": "lambda_with_example_layer",
"type": "pwa-node",
"request": "attach",
"address": "localhost",
"port": 6767,
"localRoot": "${workspaceFolder}/lambda_with_example_layer",
"sourceMaps": true,
"remoteRoot": "/var/task",
"protocol": "inspector",
"stopOnEntry": false,
"skipFiles": [
"/**"
]
}
```

Is there any debugger/SAM/Docker configuration that i missed? Or is something else deeper in the layer execution flows that broke debugging in a container with SAM local?

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par l’exemple `nodejs-example-extension` et reproduisez la configuration d’attachement de VS Code à l’aide de `sam local invoke --port 6767`. Lisez les journaux de la phase d’enregistrement autour de `register`, `next` et du démarrage de l’inspecteur, puis déterminez pourquoi l’inspecteur signale que le port 6767 est déjà utilisé. Le travail est terminé lorsque les invocations locales s’attachent correctement et que les points d’arrêt sont respectés pour la Lambda.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
node.js
Domaine
devtools
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.