Привязки Сетки событий Azure для Функций Azure

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

Служба "Сетка событий" — это служба Azure, которая отправляет HTTP-запросы для уведомления о событиях, которые происходят в издателях. Издатель — это служба или ресурс, в котором происходит событие. Например, учетная запись хранения больших двоичных объектов Azure является издателем, а отправка или удаление большого двоичного объекта — это событие. Некоторые службы Azure имеют встроенную поддержку публикации событий в службу "Сетка событий".

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

Триггер HTTP также можно использовать для обработки событий сетки событий. Дополнительные сведения см. в разделе Получение событий через конечную точку HTTP. Мы рекомендуем использовать триггер Сетки событий, а не триггер HTTP.

Действие Тип
Выполнение функции при отправке события Сетки событий Триггер
Отправка события Сетки событий Выходная привязка
Управление возвращенным кодом состояния HTTP Конечная точка HTTP

Установка расширения

Устанавливаемый пакет расширения NuGet зависит от режима C#, который используется в приложении-функции:

Функции выполняются в изолированном рабочем процессе C#. Дополнительные сведения см. в статье Руководство по запуску Функции Azure C# в изолированном рабочем процессе.

Функциональные возможности расширения отличаются в зависимости от версии расширения:

Добавьте расширение в проект, установив пакет NuGet версии 3.x.

Установка пакета

Расширение Сеток событий входит в пакет расширений, который указан в файле проекта host.json. Возможно, потребуется изменить этот пакет, чтобы изменить версию привязки Сетки событий или если пакеты еще не установлены. Дополнительные сведения см. в разделе Пакет расширений.

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

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

Для получения дополнительных сведений см. раздел Обновление расширений.

Типы привязки

Типы привязки, поддерживаемые для .NET, зависят от версии расширения и режима выполнения C#, который может быть одним из следующих:

Изолированная библиотека классов рабочих процессов, скомпилированная функция C#, выполняется в процессе, изолированном от среды выполнения.

Выберите версию, чтобы просмотреть сведения о типе привязки для режима и версии.

Изолированный рабочий процесс поддерживает типы параметров в соответствии с таблицами ниже. Поддержка привязки к Streamи типам из Azure.Messaging доступна в предварительной версии.

Триггер Сетки событий

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

Тип Описание
Сериализуемые в JSON типы Функции пытаются десериализовать данные JSON события в обычный тип объекта CLR (POCO).
string Событие в виде строки.
BinaryData1 Байты сообщения о событии.
CloudEvent1 Объект события. Используйте, если служба "Сетка событий" настроена для доставки с помощью схемы CloudEvents.
Событие EventGridEvent1 Объект события. Используйте, если служба "Сетка событий" настроена для доставки с помощью схемы Сетки событий.

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

Тип Описание
CloudEvent[]1,
EventGridEvent[]1,
string[],
BinaryData[]1
Массив событий из пакета. Каждая запись представляет одно событие.

1 Чтобы использовать эти типы, необходимо сослаться на Microsoft.Azure.Functions.Worker.Extensions.EventGrid 3.3.0 или более поздней версии и общие зависимости для привязок типов пакета SDK.

Выходная привязка Сетки событий Azure

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

Тип Описание
string Событие в виде строки.
byte[] Байты сообщения о событии.
Сериализуемые в JSON типы Объект , представляющий событие JSON. Функции пытаются сериализовать обычный тип объекта CLR (POCO) в данные JSON.

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

Тип Описание
T[] где T — один из типов событий Массив, содержащий несколько событий. Каждая запись представляет одно событие.

Для других сценариев вывода создайте и используйте типы из Azure.Messaging.EventGrid напрямую.

Параметры файла host.json

Триггер Сетки событий использует HTTP-запрос веб-перехватчика, который можно настроить, используя те же параметры host.json, что и триггер HTTP.

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