Триггер и привязки Центров событий Azure для службы "Функции Azure"

Здесь объясняется, как работать с привязками Центров событий Azure для службы "Функции Azure". Функции Azure поддерживают привязки триггера и выходные привязки для Центров событий Azure.

Действие Тип
Реагирование на события, отправляемые в поток событий Центра событий. Триггер
Запись событий в поток событий Выходная привязка

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

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

Функции выполняются в том же процессе, что и хост-процесс функций. Дополнительные сведения см. в статье Разработка функций библиотеки классов C# с помощью службы "Функции Azure".

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

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

В этой версии используется более современный тип привязки Центров событий Azure.Messaging.EventHubs.EventData.

Эта версия расширения доступна путем установки пакета NuGet версии 5.x.

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

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

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

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

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

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

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

В файле host.json содержатся параметры, управляющие работой триггера Центров событий. Конфигурация будет разной в зависимости от версии расширения.

{
    "version": "2.0",
    "extensions": {
        "eventHubs": {
            "maxEventBatchSize" : 10,
            "batchCheckpointFrequency" : 5,
            "prefetchCount" : 300,
            "transportType" : "amqpWebSockets",
            "webProxy" : "https://proxyserver:8080",
            "customEndpointAddress" : "amqps://company.gateway.local",
            "initialOffsetOptions" : {
                "type" : "fromStart",
                "enqueuedTimeUtc" : ""
            },
            "clientRetryOptions":{
                "mode" : "exponential",
                "tryTimeout" : "00:01:00",
                "delay" : "00:00:00.80",
                "maximumDelay" : "00:01:00",
                "maximumRetries" : 3
            }
        }
    }
}  
Свойство По умолчанию Описание
maxEventBatchSize 10 Максимальное количество событий, которые будут включены в пакет для одного вызова. Должно быть не менее 1.
batchCheckpointFrequency 1 Количество пакетов, обрабатываемых перед созданием контрольной точки для концентратора событий.
prefetchCount 300 Количество событий, которые будут запрашиваться из Центров событий и храниться в локальном кэше, чтобы избежать ожидания сетевой операции во время чтения.
transportType amqpTcp Протокол и транспорт, используемые для обмена данными с Центрами событий. Доступные параметры: amqpTcp, amqpWebSockets
webProxy Прокси-сервер, используемый для взаимодействия с Центрами событий через веб-сокеты. Прокси-сервер нельзя использовать с транспортом amqpTcp.
customEndpointAddress Адрес, используемый при установке подключения к Центрам событий, позволяющий маршрутизировать сетевые запросы через шлюз приложений или другой путь, необходимый для среды узла. Полное пространство имен для концентратора событий по-прежнему необходимо, если используется адрес настраиваемой конечной точки. Его необходимо указать явным образом или через строку подключения.
initialOffsetOptions/type fromStart Расположение в потоке событий, с которого следует начать обработку, если контрольная точка не существует в хранилище. Применяется ко всем разделам. Дополнительные сведения см. в документации OffsetType. Доступные параметры: fromStart, fromEnd, fromEnqueuedTime
initialOffsetOptions/enqueuedTimeUtc Указывает время в очереди для события в потоке, с которого начинается обработка. Если для initialOffsetOptions/type настроено значение fromEnqueuedTime, этот параметр является обязательным. Поддерживает время в любом формате, поддерживаемом в методе DateTime.Parse(), например 2020-10-26T20:31Z. Для ясности следует также указать часовой пояс. Если часовой пояс не указан, Функции предполагают, что используется местный часовой пояс компьютера, на котором запущено приложение-функция (при выполнении в Azure это время в формате UTC).
clientRetryOptions/mode exponential Режим, используемый для расчета интервалов повтора. В экспоненциальном режиме попытки будут повторяться с интервалом, основанном на стратегии отсрочки, в соответствии с которой время перед каждой следующей попыткой увеличивается. В режиме с постоянным интервалом попытки будут повторяться через один и тот же интервал. Доступные параметры: exponential, fixed
clientRetryOptions/tryTimeout 00:01:00 Максимальное время ожидания выполнения операции центров событий для каждой попытки.
clientRetryOptions/delay 00:00:00.80 Коэффициент задержки или отсрочки, применяемый между повторными попытками.
clientRetryOptions/maximumDelay 00:00:01 Максимальная задержка между повторными попытками.
clientRetryOptions/maximumRetries 3 Максимальное количество повторных попыток, после которого связанная операция будет считаться неудавшейся.

См. сведения о файле host.json в Функциях Azure версии 2.x и выше.

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