微软托管代理能否通过Databricks资产包部署禁用公网访问的Databricks工作区?
微软托管代理默认无法直接通过私有端点访问禁用公网的Databricks工作区——因为它运行在Azure公共网络环境中,无法直接接入你的私有网络。你遇到的部署失败问题,核心原因就是这个网络隔离限制。
可行解决方案
通过Azure Private Link接入私有网络
配置Azure DevOps的微软托管代理私有网络访问能力:在Azure门户创建Private Link服务,关联到Databricks私有端点所在的虚拟网络;然后在Azure DevOps组织中配置私有连接端点,将托管代理的流量路由到你的私有网络。此方案需要Azure DevOps Premium层支持,且需完成网络侧的权限和路由配置。配置出站代理中转流量
收集微软官方发布的微软托管代理IP地址范围,在你的出站代理中添加这些IP的允许规则;同时在Databricks工作区的NSG中,允许出站代理的IP访问私有端点的API端口。部署时将Databricks的访问地址设置为私有端点FQDN,通过代理完成请求中转。轻型自托管代理中转部署任务
在你的私有网络内部署一个轻量自托管代理,仅用于执行Databricks Asset Bundle的部署操作。Azure DevOps Pipeline中,将部署任务指定为运行在这个自托管代理上,而其他任务仍使用微软托管代理。这样既保留托管代理的便利性,又解决私有网络访问问题。临时放宽网络限制(仅测试用)
若仅用于验证流程,可临时在Databricks工作区的NSG中添加微软托管代理的IP范围,允许公网访问Databricks API端口。部署完成后立即移除该规则,此方案存在安全风险,不建议生产环境使用。
部署配置注意事项
- 确保在部署配置中指定私有端点URL:在
databricks.yml或Pipeline环境变量中设置DATABRICKS_HOST为私有端点的FQDN(例如https://<workspace-name>.privatelink.databricks.azure.cn)。 - 添加连通性测试:在Pipeline中加入
curl -v <private-endpoint-url>命令,提前验证托管代理是否能访问私有端点,快速定位网络问题。
内容的提问来源于stack exchange,提问作者Quan Nguyen Anh

