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


План Функций Azure категории "Премиум"

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

Внимание

Функции Azure могут выполняться на платформе Службы приложений Azure. На платформе Службы приложений планы с размещением приложений-функций премиум-класса называются Эластичными планами категории "Премиум", с названием SKU, как EP1. Если вы выбрали план "Премиум" для вашего приложения-функции, обязательно создайте план с именем SKU, начинающимся с "E", как EP1. Названия планов службы приложений, начинающиеся с буквы "P", такие как P1V2 (малый план Премиум V2), являются планами выделенного размещения. Так как они относятся к планам с выделенным размещением, а не к планам "Эластичный Премиум", планы с наименованием SKU, начинающимся с "P", не будут динамически масштабироваться, что может увеличить ваши затраты.

Размещение плана "Премиум" обеспечивает следующие преимущества для ваших функций:

При использовании плана "Премиум" вы добавляете и удаляете экземпляры узла Функций Azure в зависимости от количества входящих событий, как в плане гибкого потребления и плане потребления. Можно развернуть несколько приложений-функций в одном плане Premium. Вы можете настроить размер вычислительного экземпляра, размер базового плана и максимальный размер плана.

Выставление счетов

Вы платите за план Premium на основе количества ядро-секунд и объема памяти, выделенных для экземпляров. Эта модель выставления счетов отличается от плана потребления, согласно которому счета выставляются на основе потребления ресурсов в расчёте на секунду и выполнения. План Premium не взимает плату за выполнение. Эта модель выставления счетов приводит к минимальной ежемесячной стоимости для каждого активного плана, будь то функция активна или неактивна. Все приложения-функции в плане Premium используют общие выделенные экземпляры. Дополнительные сведения см. на странице цен на Функции Azure.

Примечание.

Каждый план уровня "Премиум" всегда имеет по крайней мере одну активную инстанцию, на которую выставляется счет.

Создание плана "Премиум"

При создании приложения-функции на портале Azure по умолчанию используется план "Потребление". Чтобы создать приложение функции, работающее в тарифном плане Premium, необходимо явно создать или выбрать хостинг-план Azure Functions Premium, воспользовавшись одной из версий Elastic Premium. Вы размещаете функциональное приложение, создаваемое вами в этом плане. Портал Azure упрощает одновременное создание плана "Премиум" и приложения-функции. Вы можете запустить несколько приложений-функций в одном и том же плане "Премиум", но они должны работать на одной и той же операционной системе (Windows или Linux).

В следующих статьях показано, как программно создать приложение-функцию с планом Premium:

Устраните холодные старты

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

План Premium предоставляет две функции, которые работают вместе, чтобы эффективно устранять холодные запуски в ваших функциях: экземпляры, которые всегда готовы, и предварительно прогретые экземпляры. Всегда готовые экземпляры — это категория заранее выделенных экземпляров, на которых не влияет масштабирование, и подготовленные экземпляры являются буфером при масштабировании, вызванном HTTP-событиями.

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

Всегда готовые экземпляры

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

Этот параметр уровня приложения также управляет минимальным числом экземпляров плана. Например, рассмотрим три приложения-функции в одном плане Premium. Если для двух приложений количество всегда готовых экземпляров установлено равным одному, а для третьего приложения — пяти, то минимальное количество экземпляров для всего плана составляет пять. Это число также отражает минимальное количество экземпляров плана, за которые выставляется счет. Максимальное число всегда готовых экземпляров, поддерживаемых для каждого приложения, равно 20.

Вы можете настроить количество всегда готовых экземпляров на портале Azure, выбрав Function App, перейдя в меню План службы приложений>Горизонтальное масштабирование слева и изменив параметры масштабирования приложения. В окне "Изменение приложения функций" экземпляры, которые всегда готовы, относятся только к этому приложению.

Предварительно разогретые экземпляры

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

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

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

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

Снимок экрана: граф горизонтального масштабирования.

  1. Когда приложение бездействует и нет событий, запускающих это приложение, для работы этому приложению предоставляется два экземпляра. В настоящее время вам выставляются счета за два всегда готовых экземпляра, но вам не выставляется счет за предварительно подготовленный экземпляр, так как он не выделен.
  2. По мере того как ваше приложение начинает получать HTTP-трафик, нагрузка распределяется между двумя постоянно готовыми экземплярами. Как только эти два экземпляра начинают обработку событий, экземпляр добавляется для заполнения предварительно созданного буфера. Теперь приложение работает с тремя подготовленными экземплярами: двумя всегда готовыми экземплярами и третьим предварительно подготовленным и неактивным буфером. Плата взимается за три экземпляра.
  3. По мере увеличения нагрузки приложение нуждается в дополнительных экземплярах для обработки HTTP-трафика, который предварительно подготовленный экземпляр переключается на активный экземпляр. Теперь загрузка HTTP направляется на все три экземпляра, а четвертый экземпляр мгновенно подготавливается для заполнения предварительно подготовленного буфера.
  4. Эта последовательность масштабирования и предварительного потепления продолжается до тех пор, пока не будет достигнуто максимальное количество экземпляров приложения или нагрузка не уменьшится, что приведет к сокращению масштаба платформы через определенный период времени. Экземпляры не предварительно разогреваются и не активируются сверх установленного максимума.

На портале вы не можете изменить значение количества предварительно разогретых экземпляров. Вместо этого необходимо использовать Azure CLI или Azure PowerShell.

Максимальное количество экземпляров функционального приложения

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

Подключение к частной сети

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

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

Дополнительные сведения см. в статье "Интеграция функций Azure с виртуальной сетью".

Быстрое эластичное масштабирование

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

Дополнительные сведения о том, как реализуется масштабирование, см. в статье Масштабирование на основе событий в Функциях Azure.

Выполнение с увеличенной продолжительностью

Функции в плане потребления ограничены 10 минутами на одно выполнение. В плане "Премиум" продолжительность выполнения по умолчанию составляет 30 минут, чтобы предотвратить неконтролируемое выполнение. Тем не менее, вы можете изменить конфигурацию host.json, чтобы сделать длительность неограниченной для приложений Premium плана, со следующими ограничениями:

  • Обновления платформы могут активировать управляемое завершение работы и остановить выполнение функции с льготным периодом 10 минут.
  • Таймер простоя останавливает процесс по прошествии 60 минут, если новых выполнений нет.
  • Поведение уменьшения масштабирования может вызвать завершение работы работника через 60 минут.
  • Переключения слотов могут завершать выполнение на исходных и целевых слотах во время переключения.

Миграция

Если у вас уже есть приложение-функция, с помощью команд Azure CLI можно переносить его между планами «Потребление» и «Премиум» в системе Windows. Конкретные команды зависят от направления переноса. Подробнее см. в статье Планирование миграции.

Этот перенос не поддерживается в Linux.

Параметры плана "Премиум"

При создании плана необходимо задать два параметра размера: минимальное количество экземпляров (или размер плана) и максимальное ограничение на всплеск.

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

Вы можете настроить размер плана на портале Azure, выбрав приложение-функцию, развернутое в этом плане, перейдите в меню ">службы приложений" слева и выберите более крупный размер плана. Чтобы увеличить максимальное ограничение на всплеск, выберите пункт меню "Горизонтальное увеличение масштаба" и измените параметр "Горизонтальное масштабирование>".

Минимальное количество для каждого тарифного плана Premium — как минимум один экземпляр. Фактическое минимальное количество экземпляров определяется на основе постоянно готовых экземпляров, запрашиваемых приложениями в рамках плана. Например, если приложение A запрашивает пять всегда готовых экземпляров, а приложение B запрашивает два всегда готовых экземпляра в одном плане, минимальный размер плана определяется как пять. Приложение A выполняется на всех пяти экземплярах, а приложение B выполняется на двух экземплярах.

Внимание

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

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

Вы можете настроить минимальные экземпляры на портале Azure, выбрав Function App, развернутое в этом плане, перейдите в меню "службы приложенийГоризонтальное масштабирование" слева и измените параметр "Масштабирование планаМинимальные экземпляры".

Номера SKU доступных экземпляров

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

Номер SKU Ядра Память Хранилище
ЭП1 1 3,5 ГБ 250 ГБ
ЭП2 2 7 ГБ 250 ГБ
ЕР3 4 14 ГБ 250 ГБ

Рекомендации по использованию памяти

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

Например, для приложения-функции JavaScript объем используемой памяти ограничен предельным значением, заданным по умолчанию в Node.js. Чтобы увеличить этот фиксированный предельный объем памяти, добавьте для приложения параметр languageWorkers:node:arguments со значением --max-old-space-size=<max memory in MB>.

Для планов с более чем 4 ГБ памяти установите параметр платформы Bitness в 64 Bit разделе "Общие параметры".

Максимальное масштабирование региона

В следующей таблице перечислены поддерживаемые в настоящее время максимальные значения горизонтального масштабирования для одного плана в каждом регионе и конфигурации ОС:

Область/регион Виндоус Линукс
Центральная Австралия 100 20
Центральная Австралия 2 100 Недоступно
Восточная Австралия 100 40
Юго-Восточная часть Австралии 100 20
Южная Бразилия 100 20
Центральная Канада 100 100
Центральная Индия 100 20
Центральная часть США 100 100
Восточный Китай 2 20 20
Северный Китай 2 20 20
Северный Китай 3 20 20
Восточная Азия 100 20
Восточная часть США 100 100
Восточная часть США 2 80 100
Центральная Франция 100 шестьдесят
Центрально-Западная Германия 100 20
Израиль, центральный регион 100 20
Северная Италия 100 20
Восточная Япония 100 20
Западная Япония 100 20
Jio Индия Запад 100 20
Республика Корея, центральный регион 100 20
Республика Корея, южный регион 40 20
Центральная Мексика 20 20
Центрально-северная часть США 100 20
Северная Европа 100 100
Восточная Норвегия; 100 20
Северная часть ЮАР 100 20
Западная часть ЮАР 20 20
Центрально-южная часть США 100 100
Индия (юг) 100 Недоступно
Юго-Восточная Азия 100 20
Центральная Испания 20 20
Северная Швейцария 100 20
Западная Швейцария 100 20
Северная часть ОАЭ; 100 100
южная часть Соединенного Королевства 100 100
западная часть Соединенного Королевства 100 20
Правительство США Аризона 20 20
USGov Техас 20 Недоступно
Правительство США, Вирджиния 80 20
Центрально-западная часть США 100 20
Западная Европа 100 100
Индия (запад) 100 20
западная часть США 100 100
западная часть США 2 100 20
Запад США 3 100 20

Дополнительные сведения см. в статье Доступность продуктов по регионам.