Как настроить VSCode для локальной отладки AWS лямбды? - PullRequest
3 голосов
/ 17 октября 2019

Я начинаю с AWS Lambda. Редактор на мой выбор - VSCode . Я наблюдал официальное введение о том, как настроить VSCode для этой задачи в качестве начала. Там «инструкторы» используют графический интерфейс для отладки функции локально или для ее локального запуска, нажав «Выполнить локально» или «Отладить локально».

enter image description here

Я хотел бы сделать это, используя файл task.json и файл launch.json. Это кажется мне более обтекаемым, чем нажатие на графический интерфейс. Кто-нибудь знает, как должны выглядеть task.json и launch.json?

На мой взгляд, это было

launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Remote Attach",
      "type": "python",
      "request": "attach",
      "port": 5858,
      "host": "127.0.0.1",
      "pathMappings": [
        {
          "localRoot": "${workspaceFolder}/python_test_application",
          "remoteRoot": "/var/task",
          "protocol": "legacy"
        }
      ] 
    }
  ]
}

task.json

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "samLocalInvoke",
      "type": "shell",
      "command": "sam", 
      // this is what vscode runs on "Debug Locally", so lets also run it here
      // sam local invoke awsToolkitSamLocalResource --template /tmp/aws-toolkit-vscode/vsctkYQFIA5/output/template.yaml --event /tmp/aws-toolkit-vscode/vsctkYQFIA5/event.json --env-vars /tmp/aws-toolkit-vscode/vsctkYQFIA5/env-vars.json -d 5858"
      "args": [
        "local",
        "invoke",
        "awsToolkitSamLocalResource",
        "--template",
        "/tmp/aws-toolkit-vscode/vsctk7WXgnB/output/template.yaml",
        "--event",
        "/tmp/aws-toolkit-vscode/vsctk7WXgnB/event.json",
        "--env-vars",
        "/tmp/aws-toolkit-vscode/vsctk7WXgnB/env-vars.json",
        "-d",
        "5858"
      ] 
    }
  ]
}

Этот вид выключен, но не совсем. Лучшим решением было бы всегда сначала строить, а затем динамически использовать вставку dir сборки через переменную (здесь vsctk7WXgnB).

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

...