Сравнение вариантов размещения Функций Azure

Завершено

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

Вариант размещения Service Availability Поддержка контейнеров
План потребления Функции Azure Обычно доступно (GA) нет
План потребления Flex Функции Azure Предварительный просмотр нет
План категории "Премиум" Функции Azure Общедоступная версия Linux
План ценовой категории "Выделенный" Функции Azure Общедоступная версия Linux
Приложения-контейнеры Приложения-контейнеры Azure Общедоступная версия Linux

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

  • Как масштабируется приложение-функция.
  • Ресурсы, доступные для каждого экземпляра приложения-функции.
  • Поддержка расширенных функций, таких как подключение к виртуальной сети Azure.
  • Поддержка контейнеров Linux.

Выбранный план также влияет на затраты на выполнение кода функции.

Обзор планов

Ниже приведены краткие сведения о преимуществах различных вариантов размещения:

План потребления

План потребления — это план размещения по умолчанию. Оплата вычислительных ресурсов только при выполнении функций (с оплатой по мере использования) с автоматическим масштабированием. В рамках плана потребления экземпляры узла Функций динамически добавляются и удаляются в зависимости от числа входящих событий.

План потребления Flex

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

Вы можете уменьшить количество готовых (всегда готовых) экземпляров. Выполняет автоматическое масштабирование по требованию.

План категории "Премиум"

Автоматически масштабируется по требованию с помощью предварительно подготовленных рабочих ролей, которые запускают приложения без задержки после простоя, выполняются на более мощных экземплярах и подключаются к виртуальным сетям.

Рассмотрим план Функций Azure уровня "Премиум" в следующих ситуациях.

  • Приложения-функции выполняются непрерывно или почти непрерывно.
  • Вы хотите больше управления экземплярами и хотите развернуть несколько приложений-функций в одном плане с масштабированием на основе событий.
  • У вас есть большое количество небольших выполнений и высокий счет за выполнение, но низкий ГБ секунды в плане потребления.
  • Вам требуется больше параметров ЦП или памяти, чем предоставляются планами потребления.
  • Код должен выполняться дольше, чем максимально допустимое время выполнения в плане потребления.
  • Требуется подключение к виртуальной сети.
  • Вы хотите предоставить пользовательский образ Linux, в котором будут выполняться функции.

План ценовой категории "Выделенный"

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

План службы приложений стоит использовать в следующих случаях:

  • Необходимо полностью прогнозировать выставление счетов или вручную масштабировать экземпляры.
  • Вы хотите запустить несколько веб-приложений и приложений-функций в одном плане
  • Вам нужен доступ к более крупному выбору размера вычислительных ресурсов.
  • Полная изоляция вычислений и безопасный сетевой доступ, предоставляемый Среда службы приложений (ASE).
  • Высокая загрузка памяти и высокий масштаб (ASE).

Контейнеры приложений

Создание и развертывание контейнерных приложений-функций в полностью управляемой среде, размещенной приложениями контейнеров Azure.

Используйте модель программирования Функции Azure для создания приложений на основе событий, бессерверных, облачных собственных функций. Запустите свои функции вместе с другими микрослужбами, API, веб-сайтами и рабочими процессами в качестве размещенных в контейнере программ.

Рассмотрите возможность размещения функций в приложениях-контейнерах в следующих ситуациях:

  • Вы хотите упаковать пользовательские библиотеки с кодом функции для поддержки бизнес-приложений.
  • Необходимо перенести выполнение кода из локальных или устаревших приложений в облачные микрослужбы, работающие в контейнерах.
  • Вы хотите избежать затрат и сложности управления кластерами Kubernetes и выделенными вычислительными ресурсами.
  • Требуется высокопроизводительная мощность обработки, предоставляемая выделенными вычислительными ресурсами ЦП для ваших функций.

Время ожидания приложения-функции

Свойство functionTimeout в файле проекта host.json указывает длительность ожидания функций в приложении-функции. Это свойство применяется специально к выполнению функций. После запуска триггера выполнения функции функция должна возвращать и реагировать в течение времени ожидания.

В следующей таблице приведены значения по умолчанию и максимальные значения (в минутах) для конкретных планов:

Планирование По умолчанию. Максимум1
План потребления 5 10
План потребления Flex 30 Не ограничено3
План категории "Премиум" 302 Не ограничено3
План ценовой категории "Выделенный" 302 Не ограничено3
Контейнеры приложений 305 Не ограничено3
  1. Независимо от параметра времени ожидания приложения-функции 230 секунд — это максимальное время, в течение которого функция, активируемая HTTP, может реагировать на запрос.
  2. Время ожидания по умолчанию для среды выполнения Функций версии 1.x не ограничено.
  3. Гарантируется до 60 минут. Исправления операционной системы и среды выполнения, исправление уязвимостей и масштабирование в поведении по-прежнему могут отменять выполнение функций.
  4. В плане потребления Flex узел не применяет ограничение времени выполнения. Однако в настоящее время нет гарантий, так как платформа может потребоваться завершить экземпляры во время масштабирования, развертываний или применить обновления.
  5. Если минимальное количество реплик равно нулю, время ожидания по умолчанию зависит от конкретных триггеров, используемых в приложении.