Azure Функция подключения к базе данных - PullRequest
0 голосов
/ 27 марта 2020

У меня есть пакет Python, который я могу успешно запустить на виртуальной машине Data Science Azure. Однако, когда я передаю sh в Azure как функцию, я не могу успешно установить соединение с базой данных. Я получаю сообщение об ошибке, что драйвер ODB C 13 для SQL сервера не поддерживается, поэтому я изменил драйвер на ODB C Driver 17 для SQL сервера, и теперь я НЕ получаю сообщение об ошибке, но нет данные возвращаются для запроса, который, как я знаю, должен возвращать данные.

Есть ли другая причина, по которой данные не будут возвращены? Проблемы с брандмауэром? мне нужно добавить привязку? Нужно ли выделять строку подключения для подачи каждой детали (например, Driver, UID, PWD) в pyodbc.connect() отдельно? Прямо сейчас я передаю его так:

setting = os.environ("CONNECTIONSTRING")

conn = pyodbc.connect(setting)

Этот запрос прекрасно работает, возвращая данные, когда я запускаю его на виртуальной машине с использованием этого кода , только не как функция.

(Обратите внимание, это отличается от моего предыдущего поста в отношении чтения Azure Настройки приложения. Эта проблема была решена).

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Оказывается, это была не проблема подключения к базе данных, как я думал; это была ошибка кода.

0 голосов
/ 28 марта 2020

Есть много частей, где это может сломаться.

Я бы предложил начать с трассировки Profiler или Extended Events на вашем SQL сервере, чтобы проверить, устанавливается ли соединение. Если нет, то вам нужно проработать различные точки подключения, чтобы выяснить, где он ломается. Идентификационные данные, брандмауэр, NSG и т. Д. c могут быть задействованы здесь.

Как только вы увидите соединение, вы можете играть с разрешениями, чтобы гарантировать, что ваш запрос затем вернет ваши данные.

Без полного представления о вашей инфраструктуре и настройках ее сложно определить.

...