Общие сведения о привязках 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 в приложении-функции выберите Конфигурация и на вкладке Параметры среды выполнения функций установите переключатель Мониторинг масштабирования среды выполнения в положение Вкл.
Параметры файла 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 |