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