Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Расширение 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 |