假设我有一个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:\Users\i042416.ssh\KOI.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的原创文章,请关注公众号"汪子熙":

最新文章

  1. svn 提交代码报错
  2. Android 项目结构图
  3. ubuntu vps 安装 jdk
  4. call_user_func函数
  5. Mysql-proxy中的lua脚本编程(一)
  6. python里面的几个编码函数
  7. 【原创】MIPS·Verilog·FPGA
  8. 数据结构(线段树):CodeForces 85D Sum of Medians
  9. Android 天天爱消除辅助
  10. 如何写好 Git commit messages
  11. web前端+javascript+h5电子书籍和实战分享
  12. linux segmentation fault记录
  13. mysql 索引列为Null的走不走索引及null在统计时的问题
  14. centos7如何查找文件?
  15. 【Unity】不能新建项目
  16. 使用Visual Studio 2013进行单元测试
  17. 【转】Mysql千万级数据表结构修改
  18. 时间模块 --- time
  19. C++单例模式设计与实现
  20. C# 轻松实现对窗体(Form)换肤[转]

热门文章

  1. [Scikit-learn] 1.4 Support Vector Classification
  2. 值得学习的C语言开源项目和库
  3. 如何通过Exchange2010 OWA更改过期密码
  4. 【首发】uExitCode解释
  5. 能力不足的C++开发会欺辱能力不足C#开发
  6. 学习笔记:CentOS7学习之二十四:expect-正则表达式-sed-cut的使用
  7. segi日期计算笔记
  8. 输出重定向之python2和python3的区别
  9. 小菜鸟之crond
  10. Centos7下永久修改mysql5.6最大连接数