-
每个Zato环境都有默认的配置,允许其服务器从Visual Studio Code的调试器中启动。
-
以这种方式启动的服务器可以远程运行,例如,你的本地IDE可能在Mac或Windows上,而你的Zato服务器将在一个远程Linux实例中。这仍然可以让你对远程部署的服务进行调试。
-
无论服务器是在Docker下还是直接在Linux虚拟机中运行都没有关系。
-
本文包含如何以这种方式启动Zato服务器以及如何从VS Code远程调试你的代码的分步说明。

前提条件
-
确保你的远程Zato服务器运行在一个至少有两个CPU和2GB内存的Linux系统中。如果你使用AWS,选择一个中等的实例将是正确的。
-
确保你的本地主机和远程Linux服务器之间有SSH连接,也就是说,你可以ssh进入Zato服务器所在的系统。作为提醒,如果你使用Docker Quickstart,默认端口是22022。
-
如果服务器在Docker Quickstart实例中运行,就没有进一步的先决条件,你可以跳到下一节
-
如果你自己创建了一个Zato集群,检查这两个文件是否存在。
/path/to/your/environment/.vscode/launch.json /path/to/your/environment/.vscode/settings.json -
如果文件不存在,在这里下载:launch.json和settings.json
-
下载后,将它们保存到上述位置;如果
.vscode目录不存在,则创建它。最终的结果应该是,例如,如果你的环境是在/opt/zato/env/dev,文件将被送到/opt/zato/env/dev/.vscode。
VS代码中的SSH连接
-
在VS Code中,安装一个名为Remote - SSH的扩展。
-
安装后,在IDE的左下角会有一个新的按钮。该按钮将让你打开SSH连接。点击它,然后点击 "连接到主机"

- 选择你的Zato服务器所在的主机,IDE将打开一个新窗口,使用SSH连接到该主机。如有必要,请输入SSH凭证。注意,你现在会在一个新的IDE窗口中。
打开一个远程环境
- 一旦你在一个新的窗口中连接,选择 "Open Folder",选择你的环境所在的目录,然后点击OK

- 在Docker Quickstart下,路径将是
/opt/zato/env/qs-1/。在其他环境下,请相应地导航到你的环境的路径。

- 用Zato环境打开远程目录后,你的IDE窗口会如下图所示。

启动服务器
- 点击
Run and Debug图标。
![]()
- 点击
Remote Zato Main选项旁边的播放图标。

-
IDE现在将致力于在远程Linux服务器中安装它自己的所有组件--第一次可能需要几分钟时间。这个过程是CPU密集型的,这就是为什么2个CPU是一个先决条件。
-
如果 VS Code 告诉你它的 Python IDE 扩展没有安装在远程 SSH 系统中,请选择通过 SSH 安装它。这也可能需要几分钟的时间。
-
在 IDE 完成其远程组件的安装之前,需要一些时间 - 在 IDE 窗口的页脚会有反馈。一旦它们安装完毕,就可以进入下面的章节。
部署一个测试服务
- 将下面的代码保存为
demo.py,并在现在已经启动的远程服务器中进行热部署。注意突出显示的那一行,我们很快就会给它添加一个断点。
# -*- coding: utf-8 -*-
# Zato
from zato.server.service import Service
class MyService(Service):
def handle(self):
msg = 'Hello, I am a demo service'
self.logger.info(msg)
调试一个服务
- 在IDE中,在
/path/to/server/work/hot-deploy/current/demo.py的路径下找到远程服务器上部署的服务,并打开它。

- 在第9行添加一个断点,如下所示。

-
以任何你喜欢的方式调用服务,例如通过REST、Dashboard或从命令行调用。
-
调试器将在第9行停止,显示本地变量、调用堆栈和其他细节,就像它是一个本地服务器一样。

祝贺你!这个过程结束了,一切都设置好了,你现在可以远程调试你的ZatoAPI服务了。