我们在 SAP Cloud Foundry 上托管了多个 node.js express 服务。由于我们无法进一步解决这个问题,也许其他人也面临这个问题,所以这里有一个明确的问题:
如何远程调试托管在 SAP Cloud Foundry 上的 node.js 应用程序(我们自己的)?
在我们的案例中,我们有一个使用 SAP Cloud SDK (v1.6.1) 的快速服务来提供来自 SAP Cloud 和 OnPremise 的各种数据。
问问题
789 次
1 回答
4
我不确定这是否是最好的方法,但它对我有用,所以这里是:
首先,您需要command
在 manifest.yml 中调整应用程序的启动,以便您能够附加调试器。例如:
command: node --inspect --require ts-node/register src/index.ts
在这个例子中,我使用的是 TypeScript,如果你使用的是纯 JS,它可能看起来像这样:
command: node --inspect src/index.js
接下来,为了能够将调试器附加到检查器,您需要打开一个到您的应用程序的 ssh 隧道,如下所示:
cf ssh <APP_NAME> -N -T -L 9229:127.0.0.1:9229
这会将本地计算机的端口 9229 隧道连接到运行应用程序的容器上的端口 9229(9229 是检查器运行的默认端口)。
最后,(我假设你在这里使用 VS 代码)你需要启动你的调试器。这是我为此使用的配置:
{
"type": "node",
"request": "attach",
"name": "Attach to Remote",
"address": "localhost",
"port": 9229,
"localRoot": "${workspaceFolder}",
"remoteRoot": "/home/vcap/app"
}
这种方法的缺点是(与调试 Java 应用程序相比)现在可以附加到正在运行的应用程序,因为您需要先启动--inspect
(默认情况下您可能不想为生产应用程序执行此操作) )。我还没有找到解决方案。因此,如果您已经在高效运行,您可能希望进行单独的部署。
于 2019-07-24T13:03:11.450 回答