Azure DevOps能否解析启用私有访问的PostgreSQL灵活服务器私有DNS主机名?
问题解答
Azure DevOps的Azure托管代理默认无法解析配置了私有访问+私有DNS区的PostgreSQL灵活服务器主机名,核心原因如下:
- Azure托管代理运行在微软管理的公共虚拟网络环境中,该网络并未与你的私有DNS区关联的虚拟网络建立任何连接(比如VNet对等、VPN/ExpressRoute)。
- 私有DNS区的域名解析记录仅对关联的虚拟网络内部,以及通过合规网络连接到该VNet的设备可见,托管代理不在这个范围内,自然无法解析私有主机名。
针对你的场景,推荐两个可行的解决办法:
- 使用自托管代理:将自托管代理部署在与PostgreSQL灵活服务器同属一个虚拟网络的虚拟机中,或者部署在能通过VPN/ExpressRoute访问该VNet的环境里。这样代理就能直接访问私有DNS区的解析记录,完成用户创建操作。
- 临时开放公网访问并限制IP:在流水线的用户创建阶段,先通过Terraform临时开启PostgreSQL服务器的公网访问,同时将Azure托管代理的出站IP范围添加到服务器的防火墙允许列表中;完成用户创建后,再关闭公网访问并移除对应的防火墙规则。这种方式需要提前获取托管代理所在区域的出站IP范围。
注:你提到PostgreSQL灵活服务器暂不支持专用终结点,因此暂时无法通过Private Link让托管代理直接访问私有网络内的服务器,上述两种方案是当前更务实的选择。
内容的提问来源于stack exchange,提问作者Ritwik Singh
相关产品推荐
相关产品推荐

