我希望能够entry_script.py
在 VSCode 中调试正在运行的脚本。此代码在az ml deploy
使用自己的 docker run 命令创建的容器中运行。这是一个本地部署,所以我使用的部署配置如下所示:
{
"computeType": "LOCAL",
"port": 32267
}
我正在考虑使用ptvsd
来设置 VSCode 服务器,但除了端点本身的 32267 端口之外,我还需要公开/映射 5678 端口。所以我不清楚如何映射额外的暴露端口(通常使用命令中的-p
or-P
标志docker run
)。
当然,我可以EXPOSE
在extra_dockerfile_steps
配置中使用它,但实际上不会将它映射到我可以在 VSCode 中连接/附加到的主机端口。
我试图确定运行命令并可能对其进行修改,但我找不到该运行命令是什么。如果我知道如何运行通过 AzureML 本地部署创建的映像,那么我可以修改这些标志。
最终感觉太老套了——如果有更受支持的方式通过az ml deploy
或通过部署配置,那将是首选。
这是我在 entry_script 开头使用的代码,用于通过以下方式启用附件ptvsd
:
# 5678 is the default attach port in the VS Code debug configurations
print("Waiting for debugger attach")
ptvsd.enable_attach(address=('localhost', 5678), redirect_output=True)