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


Сопоставления масштабирования KEDA функций Azure в приложениях контейнеров

При развертывании Функций Azure в приложениях контейнеров Azure платформа автоматически преобразует параметры триггера функций в конфигурации масштабирования KEDA. Этот перевод гарантирует, что функции масштабируются соответствующим образом на основе входящей рабочей нагрузки из различных источников событий.

Как работают сопоставления масштабирования

Функции Azure в контейнерных приложениях используют KEDA для мониторинга источников событий и масштабирования приложений-функций. Платформа автоматически:

  1. Преобразует параметры функций: преобразует конфигурацию триггера функций (из host.json атрибутов или триггеров) в метаданные масштабируемого обработчика KEDA.

  2. Применяет правила масштабирования: использует преобразованные параметры для создания соответствующих правил масштабирования KEDA.

  3. Отслеживает события: KEDA постоянно отслеживает источники событий на основе этих правил.

  4. Масштабирует экземпляры. Автоматически масштабирует экземпляры контейнеров вверх или вниз на основе рабочей нагрузки.

В следующих разделах подробно описаны сопоставления параметров для каждого типа триггера.

Параметры масштабирования

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

Очередь службы хранилища Azure

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

Параметр Конфигурация функций Конфигурация KEDA
имя параметра batchSize queueLength
Путь к конфигурации extensions.queues.batchSize (host.json) metadata.queueLength
Значение по умолчанию 16 5
Описание триггера функций Описание масштабировщика KEDA
Количество сообщений очереди, которые среда выполнения Функций получает и обрабатывает параллельно. Когда обрабатывается newBatchThresholdчисло, среда выполнения извлекает другой пакет. Максимальное число одновременных сообщений для каждой функции — batchSize плюс newBatchThreshold. Установите значение batchSize 1, чтобы исключить параллелизм, если приложение не масштабируется до нескольких виртуальных машин. Максимальное значение batchSize — 32. Целевое значение для длины очереди, переданной масштабировщику. Например, если один модуль pod может обрабатывать 10 сообщений, задайте для целевой длины очереди значение 10. Если фактическое количество сообщений в очереди равно 30, масштабировщик масштабируется до трех модулей pod.

Логика перевода

metadata.queueLength = extensions.queues.batchSize

Служебная шина Azure (одна отправка)

В следующей таблице показано, как параметры триггера служебной шины Azure сопоставляют со значениями конфигурации масштабируемого модуля KEDA.

Параметр Конфигурация функций Конфигурация KEDA
имя параметра maxConcurrentCalls messageCount
Путь к конфигурации extensions.serviceBus.maxConcurrentCalls (host.json) metadata.messageCount
Значение по умолчанию 16 5
Описание триггера функций Описание масштабировщика KEDA
Ограничивает максимальное число одновременных вызовов на масштабируемый экземпляр. Для многоядерных экземпляров максимальное число ядер умножается на число ядер. Используйте этот параметр только в том случае, если isSessionsEnabled значение равно false. Количество активных сообщений в очереди или разделе служебной шины Azure для масштабирования.

Логика перевода

metadata.messageCount = extensions.serviceBus.maxConcurrentCalls

Служебная шина Azure (одноразовая диспетчеризация, сеансы)

В следующей таблице показано, как параметры триггера служебной шины Azure сопоставляют со значениями конфигурации масштабируемого модуля KEDA , если isSessionsEnabled это значение true.

Параметр Конфигурация функций Конфигурация KEDA
имя параметра maxConcurrentSessions messageCount
Путь к конфигурации extensions.serviceBus.maxConcurrentSessions (host.json) metadata.messageCount
Значение по умолчанию 8 5
Описание триггера функций Описание масштабировщика KEDA
Максимальное количество сеансов, обрабатываемых одновременно на один масштабируемый экземпляр. Используйте этот параметр только в том случае, если isSessionsEnabled задано значение true. Количество активных сообщений в очереди или разделе служебной шины Azure для масштабирования.

Логика перевода

metadata.messageCount = extensions.serviceBus.maxConcurrentSessions

Служебная шина Azure (пакетная обработка)

В следующей таблице показано, как параметры триггера служебной шины Azure сопоставляют со значениями конфигурации масштабировщика KEDA для пакетной обработки.

Параметр Конфигурация функций Конфигурация KEDA
имя параметра maxMessageBatchSize messageCount
Путь к конфигурации extensions.serviceBus.maxMessageBatchSize (host.json) metadata.messageCount
Значение по умолчанию 1000 5
Описание триггера функций Описание масштабировщика KEDA
Максимальное количество сообщений, передаваемых каждому вызову функции для пакетной обработки. Количество активных сообщений в очереди или разделе служебной шины Azure для масштабирования.

Логика перевода

metadata.messageCount = extensions.serviceBus.maxMessageBatchSize

Центры событий Azure

В следующей таблице показано, как параметры триггера Центров событий Azure сопоставляют со значениями конфигурации масштабируемого модуля KEDA.

Параметр Конфигурация функций Конфигурация KEDA
имя параметра targetUnprocessedEventThreshold unprocessedEventThreshold
Путь к конфигурации extensions.eventHubs.targetUnprocessedEventThreshold (host.json) metadata.unprocessedEventThreshold
Значение по умолчанию ноль 64
Описание триггера функций Описание масштабировщика KEDA
Требуемое количество необработанных событий для каждого экземпляра функции. Используется для масштабирования на основе целевого объекта. Среднее целевое значение для активации действий масштабирования.

Логика перевода

metadata.unprocessedEventThreshold = extensions.eventHubs.targetUnprocessedEventThreshold

Apache Kafka

В следующей таблице показано, как параметры триггера Apache Kafka сопоставляют со значениями конфигурации масштабируемого модуля KEDA.

Параметр Конфигурация функций Конфигурация KEDA
имя параметра LagThreshold lagThreshold
Путь к конфигурации Атрибут триггера функции metadata.lagThreshold
Значение по умолчанию 1000 10
Описание триггера функций Описание масштабировщика KEDA
Используйте это значение в качестве целевых выполнений для каждого экземпляра триггера Kafka. Количество требуемых экземпляров вычисляется на основе общего задержки потребителя, разделенной LagThresholdна .
Используйте это значение в качестве целевого объекта для общей задержки (сумма всех задержек секций), чтобы активировать действия масштабирования.

Example

[KafkaTrigger(
  "BrokerList",
  "topic",
  ConsumerGroup = "$Default",
  LagThreshold = 100)]

Логика перевода

metadata.lagThreshold = LagThreshold

Триггер HTTP

Триггер HTTP не сопоставляет масштабировщик KEDA. Вместо этого используйте встроенные возможности масштабирования HTTP-приложений или внешние решения мониторинга.