我有两个虚拟网络:公共和私有。在公共 vnet 上有一个应用服务。在私有 vnet 上有一个 azure sql 数据库。azure sql 数据库已阻止公共访问,并且正在公开私有链接。这两个 vnet 是对等的。专用链接的专用 dns 区域已链接两个 vnet。
当我 VPN 到私有 vnet 时,我可以连接到私有链接没问题。当我尝试通过应用服务连接时,出现错误:
SqlException:原因:与 SQL Server 建立连接时发生特定于实例的错误。由于拒绝公共网络访问设置为是 ( https://docs.microsoft.com/azure/azure-sql/database/connectivity-settings#deny-public-network-access ),连接被拒绝。要连接到此服务器,请使用虚拟网络内部的专用终结点 ( https://docs.microsoft.com/azure/sql-database/sql-database-private-endpoint-overview#how-to-set-up-用于 azure-sql-database 的私有链接)。
似乎应用程序服务正在使用公共 IP 地址(因此出现错误),而不是查看私有 IP 地址(通过私有 dns 区域)。
如何设置 azure 应用服务以通过跨 vnet 的专用链接进行连接?
更新:我的应用服务正在使用 Docker。我 ssh 进入它,看到 dns 名称正在解析为公共 IP 地址。我暂时将 IP 添加到主机文件(私有 IP)中,但仍然出现相同的错误。