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


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

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

Внимание

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

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

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

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

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

Примечание.

В каждом премиум-плане в любое время имеется как минимум одна активная (оплачиваемая) инстанция.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Миграция

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

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

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

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

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

Размер и максимальные значения для плана можно настроить на портале Azure, выбрав Scale Out в разделе Параметры для приложения-функции, развернутого в этом плане.

Снимок экрана: параметры размера эластичного плана на портале.

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

Внимание

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

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

Вы можете указать минимальное количество экземпляров на портале Azure, выбрав Scale Out в разделе Параметры для приложения-функции, развернутого в этом плане.

Снимок экрана настроек минимального экземпляра в портале.

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

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

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

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

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

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

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

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

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

Область/регион Windows Linux
Центральная Австралия 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 60
Центрально-Западная Германия 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 20
южная часть Соединенного Королевства 100 100
западная часть Соединенного Королевства 100 20
Правительство США Аризона 20 20
USGov Техас 20 Недоступно
Правительство США, Вирджиния 80 20
Центрально-западная часть США 100 20
Западная Европа 100 100
Индия (запад) 100 20
западная часть США 100 100
западная часть США 2 100 20
Запад США 3 100 20

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