Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Расширение 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, необходимо включить мониторинг масштабирования среды выполнения.
На портале 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 |