У меня две виртуальные сети: публичная и частная. В общедоступном vnet есть служба приложений. В частном vnet есть база данных azure sql. База данных azure sql заблокирована для общего доступа и предоставляет частную ссылку. Наблюдаются два vnets. В частной зоне DNS для частной ссылки связаны оба виртуальных сетей.
Когда я подключаюсь к частному vnet через VPN, я могу без проблем подключиться к частному каналу. Когда я пытаюсь подключиться через службу приложения, я получаю сообщение об ошибке:
SqlException: Reason: Произошла ошибка экземпляра при установке соединения с 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-private-link-for-azure-sql-database).
Похоже, что служба приложения использует общедоступный IP-адрес (отсюда и ошибка), а не видит частный IP-адрес (через частную зону DNS).
Как настроить службу приложений Azure для подключения через частную ссылку через виртуальные сети?
Обновление: моя служба приложений использует Docker. Я подключился к нему и увидел, что имя DNS разрешается в общедоступный IP-адрес. Я временно добавил IP-адрес в файл hosts (частный IP-адрес), но все равно получаю ту же ошибку.