Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эластичный план "Premium" для Функций Azure является опцией хостинга с возможностью динамического масштабирования для функциональных приложений. Другие варианты плана размещения см. в разделе "Параметры размещения Функций Azure".
Внимание
Функции Azure могут выполняться на платформе Службы приложений Azure. На платформе Службы приложений планы с размещением приложений-функций премиум-класса называются Эластичными планами категории "Премиум", с названием SKU, как EP1. Если вы выбрали план "Премиум" для вашего приложения-функции, обязательно создайте план с именем SKU, начинающимся с "E", как EP1. Названия планов службы приложений, начинающиеся с буквы "P", такие как P1V2 (малый план Премиум V2), являются планами выделенного размещения. Так как они относятся к планам с выделенным размещением, а не к планам "Эластичный Премиум", планы с наименованием SKU, начинающимся с "P", не будут динамически масштабироваться, что может увеличить ваши затраты.
Размещение плана "Премиум" обеспечивает следующие преимущества для ваших функций:
- Всегда готовые и разогретые экземпляры, чтобы избежать холодных запусков
- Подключение к виртуальной сети
- Поддержка более длительных периодов выполнения
- Выбор размеров экземпляров Premium
- Более прогнозируемые цены по сравнению с планом потребления
- Распределение приложений с высокой плотностью для планов с несколькими приложениями-функциями
- Поддержка развертываний контейнеров Linux
При использовании плана "Премиум" вы добавляете и удаляете экземпляры узла Функций 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.
Рассмотрим этот пример, показывающий, как всегда готовые экземпляры и предварительно разогретые экземпляры работают совместно. Приложение-функция "Премиум" имеет два всегда готовых экземпляра, а по умолчанию — один предварительно подготовленный экземпляр.
- Когда приложение бездействует и нет событий, запускающих это приложение, для работы этому приложению предоставляется два экземпляра. В настоящее время вам выставляются счета за два всегда готовых экземпляра, но вам не выставляется счет за предварительно подготовленный экземпляр, так как он не выделен.
- По мере того как ваше приложение начинает получать HTTP-трафик, нагрузка распределяется между двумя постоянно готовыми экземплярами. Как только эти два экземпляра начинают обработку событий, экземпляр добавляется для заполнения предварительно созданного буфера. Теперь приложение работает с тремя подготовленными экземплярами: двумя всегда готовыми экземплярами и третьим предварительно подготовленным и неактивным буфером. Плата взимается за три экземпляра.
- По мере увеличения нагрузки приложение нуждается в дополнительных экземплярах для обработки HTTP-трафика, который предварительно подготовленный экземпляр переключается на активный экземпляр. Теперь загрузка HTTP направляется на все три экземпляра, а четвертый экземпляр мгновенно подготавливается для заполнения предварительно подготовленного буфера.
- Эта последовательность масштабирования и предварительного потепления продолжается до тех пор, пока не будет достигнуто максимальное количество экземпляров приложения или нагрузка не уменьшится, что приведет к сокращению масштаба платформы через определенный период времени. Экземпляры не предварительно разогреваются и не активируются сверх установленного максимума.
На портале вы не можете изменить значение количества предварительно разогретых экземпляров. Вместо этого необходимо использовать 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, выбрав
Номера 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 |
Дополнительные сведения см. в статье Доступность продуктов по регионам.