Создание пользовательского триггера события для запуска конвейера в Фабрике данных 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
}
]
Создание пользовательского триггера событий с помощью фабрики данных
Перейдите в фабрику данных и войдите в систему.
Перейдите на вкладку Правка. Найдите значок карандаша.
Выберите Запустить в меню, а затем выберите Создать/изменить.
На странице "Добавить триггеры" выберите "Выбрать триггер", а затем нажмите кнопку "+ Создать".
В разделе " Тип" выберите "Настраиваемые события".
Выберите настраиваемый раздел из раскрывающегося списка подписки Azure или вручную введите область раздела событий.
Примечание.
Чтобы создать или изменить настраиваемый триггер события в фабрике данных, необходимо использовать учетную запись Azure с соответствующим контролем доступа на основе ролей Azure (Azure RBAC). Никакого другого разрешения не требуется. Субъект-служба фабрики данных не требует специального разрешения для сетки событий. Дополнительные сведения о контроле доступа см. в статье Контроль доступа на основе ролей.
Subject ends with
СвойстваSubject begins with
позволяют фильтровать события триггера. Оба свойства являются необязательными.Используйте +New , чтобы добавить типы событий для фильтрации. Список триггеров пользовательских событий использует отношение "ИЛИ". Когда настраиваемое событие со свойством
eventType
соответствует одному из списков, запускается конвейер. Тип события вводится без учета регистра. Например, на следующем снимке экрана триггер соответствует всем событиямcopycompleted
илиcopysucceeded
, имеющим тему, которая начинается с фабрик.Триггер пользовательского события может анализировать и отсылать полезные пользовательские данные
data
в конвейер. Вы создаете параметры конвейера, а затем заполняете значения на странице "Параметры ". Используйте формат@triggerBody().event.data._keyName_
, чтобы проанализировать полезные данные и передать значения в параметры конвейера.Подробное описание см. в статье:
- Создание ссылок на метаданные триггера в конвейере
- Системные переменные в пользовательском триггере событий
После ввода параметров нажмите кнопку "ОК".
Расширенная фильтрация
Пользовательские триггеры событий поддерживают расширенные возможности фильтрации, аналогичные расширенной фильтрации сетки событий. Эти условные фильтры позволяют конвейерам активироваться на основе значений полезных данных события. Например, у вас может быть поле в полезных данных события с именем 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 в тестовой или рабочей фабрике, должна иметь предыдущее разрешение.
Связанный контент
- Получение подробных сведений о выполнении триггера.
- Узнайте, как ссылаться на метаданные триггера при выполнении конвейеров.