如何用Visual Studio Code遠端除錯執行在伺服器上的nodejs應用

i042416發表於2019-05-07

假設我有一個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這個按鈕:

如何用Visual Studio Code遠端除錯執行在伺服器上的nodejs應用

自動彈出存放除錯配置資訊的launch.json檔案了:

如何用Visual Studio Code遠端除錯執行在伺服器上的nodejs應用

把launch.json的內容替換成下面的內容:

{    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: 
    "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遠端除錯執行在伺服器上的nodejs應用

這個配置檔案的含義是告訴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按鈕,

如何用Visual Studio Code遠端除錯執行在伺服器上的nodejs應用

這個issue close事件會自動傳送到我的AWS應用,下圖可以看到斷點觸發了,這樣我就實現了使用本地的Visual Studio Code遠端除錯AWS應用的目的。

如何用Visual Studio Code遠端除錯執行在伺服器上的nodejs應用
如何用Visual Studio Code遠端除錯執行在伺服器上的nodejs應用

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":


如何用Visual Studio Code遠端除錯執行在伺服器上的nodejs應用


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2643641/,如需轉載,請註明出處,否則將追究法律責任。

相關文章