Привязки Сетки событий 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 является одним из отдельных типов событий |
Массив, содержащий несколько событий. Каждая запись представляет одно событие. |
Для других сценариев вывода создайте и используйте EventGridPublisherClient с другими типами из Azure.Messaging.EventGrid напрямую. Пример использования внедрения зависимостей для создания типа клиента из пакета SDK Azure см. в статье "Регистрация клиентов Azure".
Параметры файла host.json
Триггер сетки событий использует HTTP-запрос веб-перехватчика, который можно настроить с помощью того же host.json параметров, что и триггер HTTP.
Следующие шаги
- Если у вас есть вопросы, отправьте вопрос в команду здесь
- Триггер сетки событий
- Выходная привязка Сетки событий Azure
- Выполнение функции при отправке события Сетки событий
- Отправка события Сетки событий