假设我有一个 nodejs 应用,运行在 AWS – 亚马逊云平台上 (Amazone Web Service)。我想用本地的 Visual Studio Code 来远程调试服务器端的 nodejs 应用。
Visual Studio Code 的调试配置里定义了两种类型,attach 和 launch。Visual Studio Code 的官方文档对这两种调试启动行为的解释:
The best way to explain the difference between launch and attach is think of a launch configuration as a recipe for how to start your app in debug mode before VS Code attaches to it,
Launch 的意思简而言之就是以 debug 模式启动 app。
while an attachconfiguration is a recipe for how to connect VS Code’s debugger to an app or process that’s alreadyrunning.
而 Attach 的含义是将 Visual Studio Code 的调试器绑定到一个已经处于运行状态的应用。
因为我的需求是用本地的 Visual Studio Code 去调试 AWS 上正在运行的 nodejs 应用,毫无疑问应该选 Attach。
点击 debug configuration 这个按钮:
自动弹出存放调试配置信息的 launch.json 文件了:
把 launch.json 的内容替换成下面的内容:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Jerry's first debug config","address":"127.0.0.1","port": 9221
}
]
}
这个配置文件的含义是告诉 Visual Studio Code 的调试进程,去连接 127.0.0.1:9221 上的应用调试进程去调试。
当然,最后一步我们还需要将本地的 127.0.0.1:9221 同 AWS 上的调试进程使用 ssh 做一个绑定。
ssh -i C:Usersi042416.sshKOI.pem -L 9221:localhost:9229 ubuntu@amazonaws.com
一切就绪后,做一个操作触发 AWS 上 nodejs 应用的执行。比如我在 AWS 上部署了一个 nodejs 应用,作为我 github repository 的 webhook。每当我在这个仓库创建 issue 时,github 网站就会推送一个事件到我的 webhook 上去。
现在我创建了一个名为 test create issue 的 issue,一旦我点了 Close 按钮,
这个 issue close 事件会自动发送到我的 AWS 应用,下图可以看到断点触发了,这样我就实现了使用本地的 Visual Studio Code 远程调试 AWS 应用的目的。
要获取更多 Jerry 的原创文章,请关注公众号 ” 汪子熙 ”: