Общие сведения о привязках Apache Kafka для службы "Функции Azure"

Расширение Kafka для службы "Функции Azure" позволяет записывать значения в разделы Apache Kafka с помощью выходной привязки. Вы также можете использовать триггер для вызова функций в ответ на сообщения в разделах Kafka.

Внимание

Привязки Kafka доступны только для Функций в составе эластичного плана "Премиум" и плана "Выделенный (Служба приложений)". Они поддерживаются только в среде выполнения Функций версии 3.x и выше.

Действие Тип
Запуск функции на основе нового события Kafka. Триггер
Запись в поток событий Kafka. Выходная привязка

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

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

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

Добавьте расширение в проект, установив данный пакет NuGet.

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

Расширение Kafka входит в пакет расширений, который указан в файле проекта host.json. При создании проекта, предназначенного для Функций версии 3.x или более поздней, этот пакет уже должен быть установлен. Дополнительные сведения см. в разделе Пакет расширений.

Настройка масштабирования среды выполнения

Чтобы функции могли правильно масштабироваться в плане "Премиум" при использовании триггеров и привязок Kafka, необходимо включить мониторинг масштабирования среды выполнения.

В портале Azure в приложении-функции выберите Конфигурация и на вкладке Параметры среды выполнения функций установите переключатель Мониторинг масштабирования среды выполнения в положение Вкл.

Снимок экрана: панель портал Azure для включения масштабирования среды выполнения.

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

В этом разделе описываются параметры конфигурации, доступные для этой привязки в версии 3.x и более поздних. Параметры в файле host.json применяются ко всем функциям в экземпляре приложения-функции. Дополнительные сведения о параметрах конфигурации приложения-функции в версии 3.x или более поздней см. в статье Справочник по файлу host.json для Функций Azure.

{
    "version": "2.0",
    "extensions": {
        "kafka": {
            "maxBatchSize": 64,
            "SubscriberIntervalInSeconds": 1,
            "ExecutorChannelCapacity": 1,
            "ChannelFullRetryIntervalInMs": 50
        }
    }
}

Свойство По умолчанию Тип Описание
ChannelFullRetryIntervalInMs 50 Триггер Определяет интервал повтора подписчика (в миллисекундах), используемый при попытке добавить элементы в канал с полной нагрузкой.
ExecutorChannelCapacity 1 Оба Определяет емкость сообщений канала. После достижения емкости подписчик Kafka приостанавливает работу до тех пор, пока функция не наверстает отставание.
MaxBatchSize 64 Триггер Максимальный размер пакета при вызове функции для триггеров Kafka.
SubscriberIntervalInSeconds 1 Триггер Определяет минимальную частоту выполнения входящих сообщений на функцию в секундах. Только в том случае, если объем сообщений меньше MaxBatchSize / SubscriberIntervalInSeconds

Следующие свойства, унаследованные от клиентской библиотеки C/C++ Apache Kafka, также поддерживаются в разделе kafka файла host.json для триггеров или выходных привязок и триггеров:

Свойство Применяется к Эквивалент librdkafka
AutoCommitIntervalMs Триггер auto.commit.interval.ms
AutoOffsetResetReset Триггер auto.offset.reset
FetchMaxBytes Триггер fetch.max.bytes
LibkafkaDebug Оба debug
MaxPartitionFetchBytes Триггер max.partition.fetch.bytes
MaxPollIntervalMs Триггер max.poll.interval.ms
MetadataMaxAgeMs Оба metadata.max.age.ms
QueuedMinMessages Триггер queued.min.messages
QueuedMaxMessagesKbytes Триггер queued.max.messages.kbytes
ReconnectBackoffMs Триггер reconnect.backoff.max.ms
ReconnectBackoffMaxMs Триггер reconnect.backoff.max.ms
SessionTimeoutMs Триггер session.timeout.ms
SocketKeepaliveEnable Оба socket.keepalive.enable
StatisticsIntervalMs Триггер statistics.interval.ms

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