Автоматизация рабочих процессов для базы данных SQL с помощью Azure Logic Apps

В этой статье описано, как получить доступ к данным в базе данных SQL из приложения логики с помощью соединителя SQL Server. Так вы можете автоматизировать задачи, процессы или рабочие процессы, которые управляют данными и ресурсами SQL, создав приложения логики. Соединитель SQL Server работает для SQL Server, а также для Базы данных SQL Azure и Управляемого экземпляра SQL Azure.

Вы можете создавать приложения логики, которые активируются событиями в базе данных SQL или в других системах, таких как Dynamics CRM Online. Приложения логики могут получать, вставлять или удалять данные, а также выполнять хранимые процедуры и SQL-запросы. Например, вы можете создать приложение логики, которое автоматически проверяет наличие новых записей в Dynamics CRM Online, добавляет элементы в Базу данных SQL для новых записей, а затем отправляет оповещения по электронной почте о добавленных элементах.

Если вы не знакомы с приложениями логики, ознакомьтесь со статьями Что такое Azure Logic Apps и Краткое руководство. Создание первого автоматизированного рабочего процесса с помощью Azure Logic Apps на портале Azure. Технические сведения о соединителях, их ограничениях и известных проблемах доступны на странице справочных материалов по соединителям SQL Server.

Предварительные требования

  • Подписка Azure. Если у вас нет ее, вы можете зарегистрироваться для получения бесплатной учетной записи Azure.

  • База данных SQL Server, База данных SQL Azure или Управляемый экземпляр SQL Azure.

    Чтобы при вызове операций приложение логики могло вернуть результаты, таблицы должны содержать данные. Если вы используете Базу данных SQL Azure, то также можете использовать предоставляемые примеры баз данных.

  • Имя сервера SQL, имя базы данных, а также имя пользователя и пароль. Эти учетные данные используются для авторизации приложения логики и получения доступа к серверу SQL.

    • Для локального экземпляра SQL Server эти сведения можно найти в строке подключения:

      Server={your-server-address};Database={your-database-name};User Id={your-user-name};Password={your-password};

    • Для Базы данных SQL Azure эти сведения можно найти в строке подключения:

      Например, чтобы найти эту строку на портале Azure, откройте базу данных. В меню базы данных выберите пункт Строки подключения или Свойства:

      Server=tcp:{your-server-name}.database.windows.net,1433;Initial Catalog={your-database-name};Persist Security Info=False;User ID={your-user-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

  • В зависимости от того, будут ли приложения логики работать в глобальной мультитенантной среде Azure или в среде службы интеграции, необходимо выполнить и другие требования для подключения к локальному экземпляру SQL Server:

    • Для приложений логики в глобальной мультитенантной среде Azure, которые подключаются к локальному экземпляру SQL Server, вам потребуются локальный шлюз данных, установленный на локальном компьютере, и ресурс шлюза данных, уже созданный в Azure.

    • Если приложения логики работают в среде службы интеграции, подключаются к локальному экземпляру SQL Server и используют проверку подлинности Windows, то необходимо учесть, что соответствующая версия соединителя SQL Server не поддерживает такую проверку подлинности. Следовательно, в этом случае вам придется использовать шлюз данных и версию соединителя SQL Server, не предназначенную для среды службы интеграции. Для других типов проверки подлинности шлюз данных не нужен и можно использовать соединитель, предназначенный для этой среды.

  • Приложения логики с возможностью доступа к базе данных SQL. Чтобы запустить приложение логики с помощью триггера SQL, требуется пустое приложение логики.

Подключение к базе данных

При добавлении триггера или действия, которое подключается к службе или системе в первый раз, конструктор рабочих процессов предлагает создать Подключение , предоставляя необходимые сведения, которые зависят от подключения, например:

  • имя, которое вы хотите использовать для нового подключения;

  • имя для системы или сервера;

  • учетные данные пользователя или учетной записи;

  • Тип проверки подлинности

Теперь выполните действия, описанные в таких разделах:

Подключение к Базе данных SQL Azure или к Управляемому экземпляру

Чтобы получить доступ к Управляемому экземпляру SQL Azure, не используя локальный шлюз данных или среду службы интеграции, необходимо настроить на нем общедоступную конечную точку. Общедоступная конечная точка использует порт 3342, поэтому при создании подключения из приложения логики необходимо указать именно этот номер порта.

При первом добавлении триггера SQL или действия SQL, если вы до этого не создали подключение к базе данных, вам будет предложено выполнить следующие действия:

  1. В поле Тип проверки подлинности выберите необходимую проверку подлинности, включенную в Базе данных SQL Azure или Управляемом экземпляре SQL Azure.

    Аутентификация Описание
    Интеграция с Azure AD – Поддерживает обе версии соединителя SQL Server (предназначенную и не предназначенную для среды службы интеграции).

    – Требуется действительное удостоверение в Azure Active Directory, у которого есть доступ к базе данных.

    Дополнительные сведения см. в следующих статьях:

    - Общие сведения о безопасности Azure SQL — Проверка подлинности
    - Авторизация доступа к базе данных в Azure SQL — Проверка подлинности и авторизация
    - Azure SQL — Интегрированная проверка подлинности Azure AD

    Проверка подлинности SQL Server – Поддерживает обе версии соединителя SQL Server (предназначенную и не предназначенную для среды службы интеграции).

    – Требуются действительное имя пользователя и надежный пароль, которые сохранены в базе данных.

    Дополнительные сведения см. в следующих статьях:

    - Общие сведения о безопасности Azure SQL — Проверка подлинности
    - Авторизация доступа к базе данных в Azure SQL — Проверка подлинности и авторизация

    Управляемое удостоверение – Поддерживает обе версии соединителя SQL Server (предназначенную и не предназначенную для среды службы интеграции).

    — требуется допустимое управляемое удостоверение, которое имеет доступ к базе данных, роль участника базы данных SQL доступ к ресурсу SQL Server и доступ к группе ресурсов, содержащей ресурс SQL Server.

    дополнительные сведения см. в разделе роли SQL Server-Level.

    В этом примере рассматривается вариант Интеграция с Azure AD:

    Снимок экрана, на котором показано окно подключения "SQL Server" с открытым списком "Тип проверки подлинности" и выбранным параметром "Интеграция с Azure AD".

  2. Выбрав тип проверки подлинности Интеграция с Azure AD, нажмите Вход. В зависимости от того, используется ли База данных SQL Azure или Управляемый экземпляр SQL Azure, выберите учетные данные пользователя для проверки подлинности.

  3. Выберите следующие значения для базы данных:

    Свойство Обязательно Описание
    Имя сервера Да Адрес сервера SQL, например Fabrikam-Azure-SQL.database.windows.net
    Имя базы данных Да Имя базы данных SQL, например Fabrikam-Azure-SQL-DB
    Имя таблицы Да Таблица, которую вы хотите использовать, например SalesLT.Customer

    Совет

    Чтобы предоставить сведения о базе данных и таблице, воспользуйтесь следующими возможностями:

    • Эту информацию можно найти в строке подключения для базы данных. Например, найдите и откройте свою базу данных на портале Azure. В меню базы данных выберите пункт Строки подключения или Свойства, чтобы найти такую строку:

      Server=tcp:{your-server-address}.database.windows.net,1433;Initial Catalog={your-database-name};Persist Security Info=False;User ID={your-user-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

    • По умолчанию таблицы в системных базах данных отфильтровываются, поэтому они могут не отображаться автоматически, когда вы выбираете такую базу данных. В качестве альтернативы можно выбрать в списке таблиц базы данных пункт Введите пользовательское значение и вручную ввести имя таблицы.

    В этом примере показано, как могут выглядеть эти значения:

    Создание подключения к базе данных SQL

  4. Теперь перейдите к еще не выполненным действиям из раздела Добавление триггера SQL или Добавление действия SQL.

Подключение к локальному экземпляру SQL Server

При первом добавлении триггера SQL или действия SQL, если вы до этого не создали подключение к базе данных, вам будет предложено выполнить следующие действия:

  1. В случае подключений к локальному серверу SQL, для которых требуется локальный шлюз данных, выполните все необходимые условия.

    Если этого не сделать, то при создании подключения ресурс шлюза данных не будет отображаться в списке Шлюз для подключения.

  2. В поле Тип проверки подлинности выберите требуемую проверку подлинности, включенную на сервере SQL Server:

    Аутентификация Описание
    Проверка подлинности Windows – Поддерживает только соединитель SQL Server, не связанный со средой службы интеграции, для которого требуется ресурс шлюза данных, созданный ранее в Azure для данного подключения, независимо от того, что вы используете: мультитенантную среду Azure или среду службы интеграции.

    – Требуются действительное имя пользователя Windows и пароль для подтверждения личности с помощью учетной записи Windows.

    Дополнительные сведения см. в разделе о проверке подлинности Windows.

    Проверка подлинности SQL Server – Поддерживает обе версии соединителя SQL Server (предназначенную и не предназначенную для среды службы интеграции).

    – Требуются действительное имя пользователя и надежный пароль, которые сохранены на сервере SQL Server.

    Дополнительные сведения см. в разделе Соединение с использованием проверки подлинности SQL Server.

    В этом примере рассматривается вариант Проверка подлинности Windows:

    Выбор типа проверки подлинности

  3. Выберите или укажите следующие значения для базы данных SQL:

    Свойство Обязательно Описание
    Имя сервера SQL Да Адрес сервера SQL, например Fabrikam-Azure-SQL.database.windows.net
    Имя базы данных SQL Да Имя базы данных SQL Server, например Fabrikam-Azure-SQL-DB
    Имя пользователя Да Ваше имя пользователя для сервера SQL и базы данных
    Пароль Да Ваш пароль для сервера SQL и базы данных
    Подписка Да (для проверки подлинности Windows) Подписка Azure для ресурса шлюза данных, созданного ранее в Azure
    Шлюз для подключения Да (для проверки подлинности Windows) Имя для ресурса шлюза данных, созданного ранее в Azure

    Совет. Если шлюз не отображается в списке, проверьте, правильно ли вы его настроили.

    Совет

    Эту информацию можно найти в строке подключения к базе данных.

    • Server={your-server-address}
    • Database={your-database-name}
    • User ID={your-user-name}
    • Password={your-password}

    В этом примере показано, как могут выглядеть эти значения:

    Подключение к SQL Server создано

  4. Когда будете готовы, нажмите Создать.

  5. Теперь перейдите к еще не выполненным действиям из раздела Добавление триггера SQL или Добавление действия SQL.

Добавление триггера SQL

  1. На портале Azure или в Visual Studio создайте пустое приложение логики. Откроется конструктор приложений логики. В этом примере используется портал Azure.

  2. В конструкторе в поле поиска введите sql server. В списке триггеров выберите нужный триггер SQL. В этом примере используется триггер При создании элемента.

    Выбор триггера "При создании элемента"

  3. Если вы впервые подключаетесь к базе данных SQL, вам будет предложено создать подключение к базе данных SQL. После создания этого подключения можно перейти к следующему шагу.

  4. В триггере укажите интервал и частоту, с которой нужно проверять таблицу.

  5. Чтобы добавить другие доступные свойства для этого триггера, откройте список Добавить новый параметр.

    Этот триггер возвращает только одну строку из выбранной таблицы. Для других задач добавьте действие соединителя SQL или другое действие, которое выполняет следующую нужную вам задачу в рабочем процессе приложения логики.

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

  6. На панели инструментов конструктора щелкните Сохранить.

    Этот шаг автоматически включает приложение логики и публикует его в Azure, но единственное действие, выполняемое сейчас приложением логики, — проверка базы данных в соответствии с заданным интервалом и частотой.

Сдвиг и смещение повторения триггера

Триггеры на основе подключения, для которых необходимо сначала создать подключение (например, триггер SQL), отличаются от встроенных триггеров, которые изначально выполняются в Azure Logic Apps (например, триггер повторения). В триггерах повторения на основе подключения расписание повторения является не единственным фактором, который управляет выполнением, а часовой пояс определяет только исходное время запуска. Последующие запуски зависят от расписания повторения, последнего выполнения триггера и других факторов, которые могут привести к смещению времени выполнения или непредвиденному поведению, например к несоблюдению заданного расписания при переходе на летнее время и его отмене. Чтобы убедиться в том, что время повторения не сдвинется при переходе на зимнее или летнее время, настройте повторение вручную. Это обеспечит запуск приложения логики в установленное время. В противном случае время запуска сдвинется на один час вперед при переходе на летнее время и на один час назад при его отмене. Дополнительные сведения см. в разделе Повторение для триггеров, основанных на подключениях.

Добавление действия SQL

В этом примере приложение логики запускается при срабатывании триггера повторения. Оно вызывает действие, которое получает строку из базы данных SQL.

  1. На портале Azure или в Visual Studio откройте приложение логики в конструкторе. В этом примере используется портал Azure.

  2. Для триггера или действия, в которое вы хотите добавить действие SQL, выберите Создать шаг.

    Добавление действия в приложение логики

    Если нужно добавить действие между существующими шагами, наведите указатель мыши на соединяющую стрелку. Нажмите появившийся знак "плюс" ( + ), а затем выберите Добавить действие.

  3. В разделе Выберите действие, введите в поле поиска sql server. Из списка действий выберите соответствующее действие SQL. В этом примере используется действие Получить строку, которое получает одну запись.

    Выбор действия SQL "Получить строку"

  4. Если вы впервые подключаетесь к базе данных SQL, вам будет предложено создать подключение к базе данных SQL. После создания этого подключения можно перейти к следующему шагу.

  5. В поле Имя таблицы выберите имя таблицы, в данном примере —SalesLT.Customer. В поле Идентификатор строки введите идентификатор для нужной записи.

    Выберите имя таблицы и укажите идентификатор строки

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

  6. По завершении нажмите кнопку Сохранить на панели инструментов конструктора.

    Этот шаг автоматически включает и публикует приложение логики в Azure в реальном времени.

Обработка больших данных

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

Обработка динамических больших данных

При вызове хранимой процедуры с помощью соединителя SQL Server возвращаемые выходные данные иногда могут быть динамическими. В этом случае выполните следующее.

  1. Откройте приложение логики в конструкторе приложений логики на портале Azure.

  2. Просмотрите формат выходных данных, выполнив тестовый запуск. Скопируйте и сохраните пример выходных данных.

  3. В конструкторе в действии, в котором вызывается хранимая процедура, выберите Новый шаг.

  4. В разделе Выберите действие найдите и выберите действие Анализ JSON.

  5. В действии Анализ JSON выберите Использовать образец полезных данных для создания схемы.

  6. В окне Введите или вставьте пример полезной нагрузки JSON вставьте пример выходных данных, а затем нажмите Готово.

    Примечание

    Если появится сообщение о том, что Logic Apps не удается создать схему, проверьте правильность формата синтаксиса примера выходных данных. Если вы по-прежнему не можете создать схему, введите ее вручную в поле Схема.

  7. На панели инструментов конструктора щелкните Сохранить.

  8. Чтобы сослаться на свойства содержимого JSON, щелкните внутри соответствующих полей ввода, чтобы появился список динамического содержимого. В списке под заголовком Анализ JSON выберите токены данных для нужных свойств содержимого JSON.

Устранение неполадок

Проблемы с подключением

Проблемы с подключением возникают довольно часто, поэтому полезно ознакомиться со статьей Устранение ошибок подключения к SQL Server. Ниже приводится несколько примеров.

  • A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.

  • (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 53)

  • (provider: TCP Provider, error: 0 - No such host is known.) (Microsoft SQL Server, Error: 11001)

Сведения о соединителях

Дополнительные технические сведения о триггерах, действиях и ограничениях этого соединителя см. на соответствующей странице справочных материалов, которая создана на основе описания Swagger.

Дальнейшие действия