Поделиться через


Привязки Сетки событий 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 в корне проекта содержит следующую extensionBundle ссылку:

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

В этом примере значение указывает узлу version функций использовать версию пакета, которая по крайней мере [4.0.0, 5.0.0) меньше4.0.0, чем , которая включает все потенциальные версии 4.x.5.0.0 Эта нотация эффективно поддерживает ваше приложение в последней доступной дополнительной версии пакета расширений версии 4.x.

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

Рекомендации по расширению сетки событий:

  • Версии расширения Сетки событий, предшествующие 3.x, не поддерживают схему CloudEvents. Чтобы использовать эту схему, используйте триггер HTTP.
  • Выходная привязка Сетки событий доступна только для функций 2.x и более поздних версий.

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

Типы привязки, поддерживаемые для .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.

Следующие шаги