#azure-data-factory #custom-activity #azure-batch
#azure-data-factory #пользовательское действие #azure-batch
Вопрос:
Я добавил код для пользовательской активности Azure datafactory в пакетной службе Azure и указал конвейер datafactory на службу bacth. Когда я выполняю код в локальной среде, он работает нормально. Но когда я загружаю его для запуска в пакетной службе Azure, он выдает и sqlexception
System.Data.SqlClient.SQLException: при установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.
Комментарии:
1. Я бы предположил, что нет прямой видимости от облачной пакетной службы до готового SQL-сервера. Используя встроенные компоненты для подключения из облака к on-prem, это должно проходить через шлюз управления данными. Вы закодировали эквивалент в пользовательском коде? Другими словами, по какой причине вы должны полагать, что облачная пакетная служба может «видеть» ваш предварительный SQL-сервер?
2. Поскольку код выполняется в службе Azure bacth, необходимо ли иметь шлюз управления данными. Разве код не должен иметь доступ к серверу sql, как если бы код выполнялся на какой-либо виртуальной машине облачной службы?
Ответ №1:
Сегодня пользовательское действие не может получить доступ к исходному ресурсу. Шлюз перемещения данных можно использовать только в сценарии действия copy Sproc, и у него нет интерфейса для выполнения кода клиента.
Решение здесь: Попробуйте скопировать действие, чтобы скопировать ваши данные в хранилище Azure или другое общедоступное облако, к которому можно получить доступ. Затем запустите пользовательское действие. В противном случае вы можете попробовать vNet и ExpressRoute для подключения общедоступного облака Azure к среде onprem.