Azure ML工作区VS Code连接计算实例无法与Jupyter端点通信如何解决
问题成因
该错误核心是VS Code向Azure ML计算实例的Jupyter API端点发送的请求被拦截,返回405方法不允许,常见成因有三类:
- 网络策略变更:即使用户未手动修改配置,企业IT侧的全局网络规则、Azure ML工作区所属VNet的NSG规则也可能发生了更新,拦截了VS Code远程连接所需的HTTP请求方法,或封禁了对应端口。
- 扩展版本不兼容:VS Code的Azure ML扩展自动更新后,与当前Azure ML计算实例的运行时版本、Jupyter服务版本不匹配,发送的请求格式不符合端点要求。
- 镜像配置异常:用户重建计算实例时拉取的官方镜像自带的Jupyter服务存在默认拦截规则,导致请求被拒绝。
解决方案
- 检查网络规则:进入Azure门户对应ML工作区的「网络」页面,查看计算实例所在子网的NSG入站出站规则,确认放行443、8787端口,且无规则限制HTTP请求方法。如果使用企业内网,联系IT确认是否对*.azureml.net域名的请求做了方法限制。
- 回退Azure ML扩展版本:卸载当前安装的Azure Machine Learning扩展,安装2021年11月前后发布的v0.18.0兼容版本,重启VS Code后重新尝试连接。
- 重置计算实例Jupyter配置:在Azure ML工作室的计算列表中打开对应实例的终端,依次执行以下命令:
sudo systemctl stop jupyterrm -rf ~/.jupytersudo systemctl start jupyter
等待2分钟服务重启完成后再尝试连接。 - 验证网络模式:如果上述操作都无效,新建计算实例时选择公共网络模式(不注入VNet)测试连接是否正常,确认是否为VNet配置导致的问题。
内容的提问来源于stack exchange,提问作者Saksham Dubey
相关产品推荐
相关产品推荐

