Не удается отладить серверное приложение в коде Visual Studio

Я пытаюсь выяснить, как я могу использовать отладчик кода Visual Studio для отладки бессерверной лямбда-функции. Для тестирования у меня очень просто test лямбда-функция:

module.exports.handler = async (event) => {
  debugger;
  console.log(111, event);
};

Затем в launch.json Я создал такую ​​конфигурацию:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch via NPM",
            "runtimeVersion": "8.4.0",
            "runtimeExecutable": "node",
            "program": "${workspaceFolder}/node_modules/.bin/sls",
            "cwd": "${workspaceRoot}",
            "args": [
                "invoke",
                "local",
                "--function",
                "test",
                "--data",
                "{foo:'bar'}"
            ],
            "port": 9229
        }
    ]
 }

Теперь я помещаю точку останова в свою лямбда-функцию и нажимаю клавишу F5, чтобы запустить отладчик. Я ожидаю, что тогда я зайду в код, добавлю несколько часов и пошагово пройдусь по моему коду. Но ничего не происходит. Нет ошибок Нет консольных выходов, нет кода, остановленного на точках останова. Ничего такого. Все, что я получаю, это сообщение в debug console: /home/set/.nvm/versions/node/v8.4.0/bin/node node_modules/.bin/sls invoke local --function test --data {foo:'bar'}

Если я иду в терминал и запускаю эту строку, я получаю именно то, что ожидается

set@set-home ~/www/blahblah/ens $ /home/set/.nvm/versions/node/v8.4.0/bin/node node_modules/.bin/sls invoke local --function test --data {foo:'bar'}
Serverless: INVOKING INVOKE
111 '{foo:bar}'

Что я делаю неправильно? Как я могу отлаживать безсерверное приложение в коде Visual Studio?

1 ответ

Решение

Я подозреваю, что вам просто нужно избавиться от "port": 9229 немного.

Я никогда не определял порт для локальной отладки бессерверных функций, но добавление его в любую из моих рабочих конфигураций вызывает симптомы, которые вы наблюдаете.


Между прочим, вы могли бы также взять некоторые другие вещи. Для справки, мои конфигурации без отладки, как правило, выглядят так для локального вызова:

    {
        "type": "node",
        "request": "launch",
        "name": "Debug sls local",
        "program": "${workspaceFolder}/node_modules/serverless/bin/serverless",
        "args": [
            "invoke", "local", "--function", "processFirehose", "--path", "sample-event.json",
            "--stage",
            "nonprod",
        ]
    },
Другие вопросы по тегам