Используйте функцию в качестве обработчика событий для событий Event Grid

Обработчик событий — это местоназначение, куда Сетка событий Azure отправляет событие для обработки. Azure автоматически настраивает несколько сервисов для обработки событий, и Функции Azure является одним из них.

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

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

Чтобы использовать функцию в Azure в качестве обработчика событий, выполните один из следующих подходов:

  • Используйте триггер Event Grid. Укажите функцию Azure в качестве типа конечной точки (endpoint type). Затем укажите функцию-приложение и функцию, которая обрабатывает события.
  • Используйте HTTP-триггер. Укажите вебхук в качестве типа конечной точки. Затем укажите URL функции, обрабатывающей события.

Используйте первый подход (триггер сетки событий). У него есть следующие преимущества по сравнению со вторым подходом:

  • Сетка событий автоматически проверяет триггеры Сетки событий. При использовании универсальных триггеров HTTP вам нужно самостоятельно реализовать ответ проверки.
  • Event Grid автоматически корректирует скорость доставки событий на функцию, которую запускает событие Event Grid, исходя из предполагаемой скорости обработки событий. Эта функция согласования скоростей предотвращает ошибки доставки, возникающие из-за неспособности функции обрабатывать события, поскольку скорость обработки событий может меняться со временем. Для повышения эффективности при высокой пропускной способности включите пакетную обработку в подписке на события. Дополнительные сведения см. на странице Включение пакетной обработки.

Примечание.

  • Когда вы используете триггер Event Grid для добавления подписки на событие с помощью функции Azure, Event Grid получает ключ доступа для целевой функции, используя учетные данные принципала сервиса Event Grid. Event Grid получает разрешения при регистрации поставщика ресурсов Event Grid в вашей подписке Azure.
  • Если вы защищаете свою функцию Azure с помощью приложения Microsoft Entra ID, вам придётся использовать универсальный webhook с помощью HTTP-триггера. Используйте конечную точку функции Azure в качестве URL-адреса вебхука при добавлении подписки.

Учебники

Заголовок Описание
Краткое руководство: обработка событий с использованием функции Отправка пользовательского события в функцию для обработки.
Руководство: потоковая передача больших данных в хранилище данных Когда Центр событий создает файл Capture, Event Grid отправляет событие в приложение-функцию. Приложение получает файл Capture и переносит данные в хранилище.
Примеры интеграции служебной шины Azure со службой "Сетка событий Azure" Event Grid отправляет сообщения из темы служебная шина в функциональное приложение и логическое приложение.

Пример REST API

Следующий пример показывает тело запроса для операции PUT, которая создаёт подписку на событие с функцией Azure в роли обработчика событий. Он устанавливает идентификатор ресурса целевой функции и включает пакетирование.

{
    "properties":
    {
        "destination":
        {
            "endpointType": "AzureFunction",
            "properties":
            {
                "resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Web/sites/<FUNCTION APP NAME>/functions/<FUNCTION NAME>",
                "maxEventsPerBatch": 10,
                "preferredBatchSizeInKilobytes": 64
            }
        },
        "eventDeliverySchema": "EventGridSchema"
    }
}

Включение пакетной обработки

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

Настройте пакетные настройки с помощью портала Azure, PowerShell, CLI или шаблона Resource Manager.

Портал Azure

Когда вы создаёте подписку в портале, на странице «Создать событие подписки » переключитесь на вкладку «Расширенные функции » и установите значения максимального количества событий на партию и размер предпочтённой партии в килобайтах.

Скриншот вкладки «Расширенные функции» на странице «Создание подписки на событие», показывающий пакетные настройки.

Обновите эти значения для существующей подписки на вкладке «Особенности » страницы «Тема сетки событий ».

Снимок экрана вкладки «Возможности» на странице темы Сетки событий, показывающий параметры пакетной обработки для существующей подписки.

Шаблон Azure Resource Manager

Установите maxEventsPerBatch и preferredBatchSizeInKilobytes в шаблоне Azure Resource Manager. Дополнительные сведения см. в справочнике по шаблонам Microsoft.EventGrid eventSubscriptions.

Azure CLI

Используйте az eventgrid event-subscription create команду для настройки пакетных настроек, используя следующие параметры: --max-events-per-batch или --preferred-batch-size-in-kilobytes.

Azure PowerShell

Используйте cmdlet New-AzEventGridSubscription или Update-AzEventGridSubscription для настройки пакетных настроек. Используйте -MaxEventsPerBatch параметр или -PreferredBatchSizeInKiloBytes , чтобы настроить свои предпочтения.

Список поддерживаемых обработчиков событий см. статью «Обработчики событий ».