Бөлісу құралы:


Создание пользовательского триггера события для запуска конвейера в Фабрике данных Azure

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

Архитектура на основе событий — это распространенный шаблон интеграции данных, который включает в себя рабочую среду, обнаружение, потребление и реакцию на события. При выполнении сценариев интеграции данных клиентам Фабрики данных Azure часто требуется запускать конвейеры при возникновении определенных событий. Собственная интеграция Фабрики данных с помощью Сетки событий Azure теперь охватывает пользовательские разделы. События отправляются в раздел "Сетка событий". Фабрика данных подписывается на раздел, прослушивает события и затем активирует конвейеры соответствующим образом.

Интеграция, описанная в этой статье, зависит от службы Сетка событий Azure. Убедитесь, что ваша подписка зарегистрирована у поставщика ресурсов "Сетка событий". См. дополнительные сведения о поставщиках и типах ресурсов. У вас должна быть возможность выполнить действие Microsoft.EventGrid/eventSubscriptions/. Это действие является частью встроенной роли участника EventGrid EventSubscription Contributor.

Внимание

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

Если вы объединяете параметры конвейера с пользовательским триггеррм события, вы можете анализировать и ссылаться на пользовательские полезные данные data при выполнении конвейера. data Так как поле в пользовательской полезных данных события — это бесплатная форма, структура ключа JSON— значение, можно управлять запусками конвейера на основе событий.

Внимание

Если ключ, на который ссылается параметризация, отсутствует в полезных данных пользовательского события, trigger run завершается ошибкой. Вы получите сообщение, которое указывает, что выражение не может быть оценено, так как keyName свойство не существует. В этом случае событие не pipeline run активируется.

Настройка пользовательского раздела в сетке событий

Чтобы использовать триггер настраиваемого события в Фабрике данных, необходимо сначала настроить пользовательский раздел в сетке событий.

Перейдите в сетку событий и создайте раздел самостоятельно. Дополнительные сведения о создании пользовательского раздела см. в руководствах по порталу "Сетка событий" и руководствах по Azure CLI.

Примечание.

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

Фабрика данных предполагает, что события следуют Схеме событий Сетки событий. Убедитесь, что полезные данные событий имеют следующие поля:

[
  {
    "topic": string,
    "subject": string,
    "id": string,
    "eventType": string,
    "eventTime": string,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string,
    "metadataVersion": string
  }
]

Создание пользовательского триггера событий с помощью фабрики данных

  1. Перейдите в фабрику данных и войдите в систему.

  2. Перейдите на вкладку Правка. Найдите значок карандаша.

  3. Выберите Запустить в меню, а затем выберите Создать/изменить.

  4. На странице "Добавить триггеры" выберите "Выбрать триггер", а затем нажмите кнопку "+ Создать".

  5. В разделе " Тип" выберите "Настраиваемые события".

    Снимок экрана: создание нового пользовательского триггера события в пользовательском интерфейсе фабрики данных.

  6. Выберите настраиваемый раздел из раскрывающегося списка подписки Azure или вручную введите область раздела событий.

    Примечание.

    Чтобы создать или изменить настраиваемый триггер события в фабрике данных, необходимо использовать учетную запись Azure с соответствующим контролем доступа на основе ролей Azure (Azure RBAC). Никакого другого разрешения не требуется. Субъект-служба фабрики данных не требует специального разрешения для сетки событий. Дополнительные сведения о контроле доступа см. в статье Контроль доступа на основе ролей.

  7. Subject ends with Свойства Subject begins with позволяют фильтровать события триггера. Оба свойства являются необязательными.

  8. Используйте +New , чтобы добавить типы событий для фильтрации. Список триггеров пользовательских событий использует отношение "ИЛИ". Когда настраиваемое событие со свойством eventType соответствует одному из списков, запускается конвейер. Тип события вводится без учета регистра. Например, на следующем снимке экрана триггер соответствует всем событиям copycompleted или copysucceeded, имеющим тему, которая начинается с фабрик.

    Снимок экрана, на котором показана страница триггера

  9. Триггер пользовательского события может анализировать и отсылать полезные пользовательские данные data в конвейер. Вы создаете параметры конвейера, а затем заполняете значения на странице "Параметры ". Используйте формат @triggerBody().event.data._keyName_, чтобы проанализировать полезные данные и передать значения в параметры конвейера.

    Подробное описание см. в статье:

    Снимок экрана: параметры параметров конвейера.

    Снимок экрана: страница параметров для ссылки на полезные данные в пользовательском событии.

  10. После ввода параметров нажмите кнопку "ОК".

Расширенная фильтрация

Пользовательские триггеры событий поддерживают расширенные возможности фильтрации, аналогичные расширенной фильтрации сетки событий. Эти условные фильтры позволяют конвейерам активироваться на основе значений полезных данных события. Например, у вас может быть поле в полезных данных события с именем Department, и конвейер должен активироваться только в том случае, если Департамент равен финансам. Можно также указать сложную логику, например поле даты в списке [1, 2, 3, 4, 5], поле месяца, а не в списке [11, 12], а если поле тега содержит [финансовый год 2021, финансовый год2021 или FY2021].

Снимок экрана: настройка расширенных фильтров для триггера события клиента.

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

  • NumberIn
  • NumberNotIn
  • NumberLessThan
  • NumberGreaterThan
  • NumberLessThanOrEquals
  • NumberGreaterThanOrEquals
  • BoolEquals
  • StringContains
  • StringBeginsWith
  • StringEndsWith
  • StringIn
  • StringNotIn

Нажмите кнопку +Создать , чтобы добавить новые условия фильтра.

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

  • 5 расширенных фильтров и 25 значений фильтров во всех фильтрах на триггер пользовательского события.
  • 512 символов на строковое значение.
  • 5 значений для in операторов и not in операторов.
  • Ключи не могут содержать . в них символ (точка), например john.doe@contoso.com. В настоящее время escape-символы в ключах не поддерживаются.
  • Один ключ можно использовать в нескольких фильтрах.

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

Схема JSON

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

Элемент JSON Описание Тип Допустимые значения Обязательное поле
scope Идентификатор ресурса Azure Resource Manager для раздела сетки событий. Строка Идентификатор Azure Resource Manager Да.
events Тип событий, вызывающих срабатывание триггера. Массив строк Да, ожидается по крайней мере одно значение.
subjectBeginsWith Поле subject должно начинаться с шаблона, указанного для срабатывания триггера. Например, фабрики вызывают триггер только для субъектов событий, имена которых начинаются со слова factories. Строка
subjectEndsWith Поле subject должно заканчиваться шаблоном, указанным для срабатывания триггера. Строка
advancedFilters Список больших двоичных объектов JSON, каждый из которых задает условие фильтра. Каждый большой двоичный объект задает атрибуты key, operatorType и values. Список БОЛЬШИХ двоичных объектов JSON

Управление доступом на основе ролей

Фабрика данных использует Azure RBAC для запрета несанкционированного доступа. Для правильной работы фабрике данных необходим доступ к следующему:

  • Прослушивание событий.
  • Подписка на обновления событий.
  • Активирование конвейеров, связанных с пользовательскими событиями.

Для успешного создания или обновления настраиваемого триггера событий необходимо войти в фабрику данных с помощью учетной записи Azure с соответствующим доступом. В противном случае операция завершается ошибкой с сообщением "Доступ запрещен".

Фабрика данных не требует специального разрешения для экземпляра службы "Сетка событий". Вам также не нужно назначать специальное разрешение роли Azure RBAC субъекту-службе Фабрики данных для операции.

В частности, требуется разрешение Microsoft.EventGrid/EventSubscriptions/Write для /subscriptions/####/resourceGroups//####/providers/Microsoft.EventGrid/topics/someTopics.

  • При создании в фабрике данных (например, в среде разработки) учетная запись Azure должна иметь предыдущее разрешение.
  • При публикации с помощью непрерывной интеграции и непрерывной доставки учетная запись, используемая для публикации шаблона Azure Resource Manager в тестовой или рабочей фабрике, должна иметь предыдущее разрешение.