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


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

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

Внимание

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

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

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

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

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

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

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

Чтобы использовать это расширение привязки в приложении, убедитесь, что файл 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.

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

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

  1. На портале Azure в приложении-функции выберите "Конфигурация".

  2. На вкладке "Параметры среды выполнения функции " для мониторинга масштабирования среды выполнения нажмите кнопку "Вкл.".

    Снимок экрана: область портала 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 Триггер Определяет интервал повтора подписчика (в миллисекундах), используемый при попытке добавить элементы в канал с полной нагрузкой.
ИсполнителяChannelCapacity 1 Оба Определяет емкость сообщений канала. После достижения емкости подписчик Kafka приостанавливает работу до тех пор, пока функция не наверстает отставание.
MaxBatchSize (Максимальный размер пакета) 64 Триггер Максимальный размер пакета при вызове функции для триггеров Kafka.
ПодписчикIntervalInSeconds 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
Повторное подключениеBackoffMs Триггер reconnect.backoff.max.ms
ReconnectBackoffMaxMs Триггер reconnect.backoff.max.ms
SessionTimeoutMs Триггер session.timeout.ms
SocketKeepaliveEnable Оба socket.keepalive.enable
StatisticsIntervalMs Триггер statistics.interval.ms

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