Варианты размещения Функций Azure
При создании приложения-функции в Azure необходимо выбрать вариант размещения приложения. Azure предоставляет следующие варианты размещения для кода функции:
Вариант размещения | Service | Availability | Поддержка контейнеров |
---|---|---|---|
План потребления Flex | Функции Azure | Обычно доступно (GA) | нет |
План категории "Премиум" | Функции Azure | Общедоступная версия | Linux |
План ценовой категории "Выделенный" | Функции Azure | Общедоступная версия | Linux |
Приложения-контейнеры | Приложения-контейнеры Azure | Общедоступная версия | Linux |
План потребления | Функции Azure | Общедоступная версия | нет |
Функции Azure возможности размещения упрощаются инфраструктурой служб приложение Azure на виртуальных машинах Linux и Windows. Вариант размещения, который вы выбираете, определяет следующее поведение:
- Как масштабируется приложение-функция.
- Ресурсы, доступные для каждого экземпляра приложения-функции.
- Поддержка расширенных функций, таких как подключение к виртуальной сети Azure.
- Поддержка контейнеров Linux.
Выбранный план также влияет на затраты на выполнение кода функции. Дополнительные сведения см. в разделе о выставлении счетов.
В этой статье представлено подробное сравнение различных вариантов размещения. Дополнительные сведения о запуске и управлении кодом функции в контейнерах Linux см. в Функции Azure поддержке контейнеров Linux.
Обзор планов
Ниже приведены краткие сведения о преимуществах различных вариантов размещения Функции Azure:
Вариант | Льготы |
---|---|
План потребления Flex | Получите быстрое горизонтальное масштабирование с помощью вариантов вычислений, виртуальных сетей и выставления счетов по мере использования. В плане потребления Flex экземпляры узла функций динамически добавляются и удаляются на основе настроенного параллелизма каждого экземпляра и количества входящих событий. ✔ Сокращение холодного запуска путем указания ряда предварительно подготовленных (всегда готовых) экземпляров. ✔ Поддерживает виртуальную сеть для добавленной безопасности. ✔ Оплата при выполнении функций. ✔ Масштабирование выполняется автоматически, даже во время периодов высокой нагрузки. |
План категории "Премиум" | Автоматически масштабируется по требованию с помощью предварительно подготовленных рабочих ролей, которые запускают приложения без задержки после простоя, выполняются на более мощных экземплярах и подключаются к виртуальным сетям. Рассмотрим план Функции Azure Premium в следующих ситуациях: ✔ Приложения-функции выполняются непрерывно или почти непрерывно. ✔ Вы хотите больше управления экземплярами и хотите развернуть несколько приложений-функций в одном плане с масштабированием на основе событий. ✔ У вас большое количество небольших выполнений и большой счет за использование, но в плане потребления низкий уровень ГБ в секунду. ✔ Вам требуется больше параметров ЦП или памяти, чем предоставляются планами потребления. ✔ Код требуется выполнять дольше максимального времени выполнения, разрешенного в плане потребления. ✔ Требуется подключение к виртуальной сети. ✔ Вы хотите предоставить пользовательский образ Linux, в котором будут выполняться функции. |
План ценовой категории "Выделенный" | Выполняйте функции в рамках плана службы приложений по стандартным тарифам плана службы приложений. Лучше всего подходит для долго выполняющихся сценариев, в которых Устойчивые функции нельзя использовать. План службы приложений стоит использовать в следующих случаях: ✔ У вас уже есть и недоиспользуемые виртуальные машины, которые уже работают под управлением других Служба приложений экземпляров. ✔ Необходимо полностью прогнозировать выставление счетов или вручную масштабировать экземпляры. ✔ Вы хотите запустить несколько веб-приложений и приложений-функций в одном плане ✔ Вам нужен доступ к более крупному выбору размера вычислительных ресурсов. ✔ Полная изоляция вычислений и безопасный сетевой доступ, предоставляемый Среда службы приложений (ASE). ✔ Очень высокая загрузка памяти и высокий масштаб (ASE). |
Приложения-контейнеры | Создание и развертывание контейнерных приложений-функций в полностью управляемой среде, размещенной приложениями контейнеров Azure. Используйте модель программирования Функции Azure для создания приложений на основе событий, бессерверных, облачных собственных функций. Запустите свои функции вместе с другими микрослужбами, API, веб-сайтами и рабочими процессами в качестве размещенных в контейнере программ. Рассмотрите возможность размещения функций в приложениях-контейнерах в следующих ситуациях: ✔ Вы хотите упаковать пользовательские библиотеки с кодом функции для поддержки бизнес-приложений. ✔ Необходимо перенести выполнение кода из локальных или устаревших приложений в облачные микрослужбы, работающие в контейнерах. ✔ Если вы хотите избежать затрат и сложности управления кластерами Kubernetes и выделенными вычислительными ресурсами. ✔ Вашим функциям требуется высокопроизводительная мощность обработки, предоставляемая выделенными вычислительными ресурсами GPU. |
План потребления | Оплата вычислительных ресурсов только при выполнении функций (с оплатой по мере использования) с автоматическим масштабированием. В рамках плана потребления экземпляры узла Функций динамически добавляются и удаляются в зависимости от числа входящих событий. ✔ План размещения по умолчанию, предоставляющий истинное бессерверное размещение. ✔ Оплата насчитывается только при выполнении функций. ✔ Масштабирование выполняется автоматически, даже во время периодов высокой нагрузки. |
Остальные таблицы в этой статье сравнивают параметры размещения на основе различных функций и поведения.
Поддержка операционных систем
В этой таблице показана поддержка операционной системы для параметров размещения.
Размещение на компьютере | Развертывание Linux1 | Развертывание Windows2 |
---|---|---|
План потребления Flex | ✅ Только для кода ❌ Контейнер (не поддерживается) |
❌ Не поддерживается. |
План категории "Премиум" | ✅ Только для кода ✅ Контейнер |
✅ Только для кода |
План ценовой категории "Выделенный" | ✅ Только для кода ✅ Контейнер |
✅ Только для кода |
Приложения-контейнеры | ✅ Только контейнер | ❌ Не поддерживается. |
План потребления | ✅ Только для кода ❌ Контейнер (не поддерживается) |
✅ Только для кода |
- Linux — это единственная поддерживаемая операционная система для стека среды выполнения Python.
- Развертывания Windows — это только код. Функции в настоящее время не поддерживают контейнеры Windows.
Время ожидания приложения-функции
Длительность времени ожидания функций в приложении-функции определяется functionTimeout
свойством в файле проекта host.json . Это свойство применяется специально к выполнению функций. После запуска триггера выполнения функции функция должна возвращать и реагировать в течение времени ожидания. Чтобы избежать времени ожидания, важно создавать надежные функции. Дополнительные сведения см. в разделе "Улучшение Функции Azure производительности и надежности".
В следующей таблице приведены значения по умолчанию и максимальные значения (в минутах) для конкретных планов:
Планирование | По умолчанию. | Максимум1 |
---|---|---|
План потребления Flex | 30 | Несоотвязанное2 |
План категории "Премиум" | 304 | Несоотвязанное2 |
План ценовой категории "Выделенный" | 304 | Несоотвязанные3 |
Приложения-контейнеры | 30 | Несоотвязано5 |
План потребления | 5 | 10 |
- Независимо от параметра времени ожидания приложения-функции 230 секунд — это максимальное время, в течение которого функция, активируемая HTTP, может реагировать на запрос. Это определяется стандартным временем простоя Azure Load Balancer. При более длительной обработке рассмотрите возможность использования асинхронного шаблона Устойчивых функций или отложите работу и получите немедленный ответ.
- Максимальное время ожидания выполнения не применяется. Однако льготный период, предоставленный выполнению функции, составляет 60 минут во время масштабирования планов Flex Consumption и Premium, а льготный период 10 минут предоставляется во время обновлений платформы.
- Требует, чтобы для плана Служба приложений было задано значение AlwaysOn. Льготный период 10 минут предоставляется во время обновлений платформы.
- Время ожидания по умолчанию для среды выполнения узла функций версии 1.x не подключено.
- Если минимальное количество реплик равно нулю, время ожидания по умолчанию зависит от конкретных триггеров, используемых в приложении.
Поддержка языков
Дополнительные сведения о поддержке текущего стека языка машинного языка в Функциях см. в разделе "Поддерживаемые языки" в Функции Azure.
Масштабировать
В следующей таблице сравниваются режимы масштабирования различных планов размещения.
Максимальное количество экземпляров предоставляются для каждого приложения-функции (Потребление) или для каждого плана (Премиум/Выделенный), если не указано иное.
Планирование | Горизонтальное увеличение масштаба | Максимальное число экземпляров |
---|---|---|
План потребления Flex | Масштабирование для каждой функции. Решения на основе масштабирования на основе событий вычисляются на основе каждой функции, что обеспечивает более детерминированный способ масштабирования функций в приложении. За исключением HTTP, хранилища BLOB-объектов (сетки событий) и Устойчивые функции, все остальные типы триггеров функций в масштабе приложения на независимых экземплярах. Все триггеры HTTP в приложении масштабируются вместе в виде группы в одних и тех же экземплярах, как и все триггеры хранилища BLOB-объектов (Сетка событий). Все триггеры Устойчивые функции также совместно используют экземпляры и масштабируются вместе. | Ограничивается только общим использованием памяти всех экземпляров в заданном регионе. Дополнительные сведения см. в разделе "Память экземпляра". |
План категории "Премиум" | Управляемые события. Горизонтальное увеличение масштаба выполняется автоматически, даже во время периодов высокой нагрузки. Функции Azure инфраструктура масштабирует ресурсы ЦП и памяти путем добавления дополнительных экземпляров узла функций на основе количества событий, на которых активируются его функции. | Windows: 100 Linux: 20-1002 |
План ценовой категории "Выделенный"3 | Ручная или автомасштабирование | 10-30 100 (ASE) |
Приложения-контейнеры | Управляемые события. Горизонтальное увеличение масштаба выполняется автоматически, даже во время периодов высокой нагрузки. Функции Azure инфраструктура масштабирует ресурсы ЦП и памяти путем добавления дополнительных экземпляров узла функций на основе количества событий, на которых активируются его функции. | 300-10004 |
План потребления | Управляемые события. Выполняет автоматическое масштабирование даже в периоды высокой нагрузки. Инфраструктура функций масштабирует ресурсы ЦП и памяти путем добавления дополнительных экземпляров узла Функций на основе количества входящих событий триггера. | Windows: 200 Linux: 1001 |
- Во время горизонтального масштабирования в настоящее время существует ограничение в 500 экземпляров на подписку в час для приложений Linux в плане потребления.
- В некоторых регионах приложения Linux в плане "Премиум" могут масштабироваться до 100 экземпляров. Дополнительную информацию см. в статье "План Премиум".
- Конкретные ограничения для различных вариантов плана Служба приложений см. в Служба приложений ограничениях плана.
- В контейнерных приложениях по умолчанию используется 10 экземпляров, но можно задать максимальное количество реплик, которое имеет общее максимальное значение 1000. Этот параметр учитывается до тех пор, пока доступно достаточно квоты ядер. При создании приложения-функции из портал Azure вы ограничены 300 экземплярами.
Поведение холодного запуска
Планирование | Сведения |
---|---|
План потребления Flex | Поддерживает всегда готовые экземпляры для уменьшения задержки при подготовке новых экземпляров. |
План категории "Премиум" | Поддерживает всегда готовые экземпляры, чтобы избежать холодных запусков , позволяя поддерживать один или несколько постоянно теплых экземпляров. |
План ценовой категории "Выделенный" | При выполнении в выделенном плане узел функций может непрерывно выполняться в заданном количестве экземпляров, что означает, что холодный запуск на самом деле не является проблемой. |
Приложения-контейнеры | Зависит от минимального количества реплик: • Если задано равно нулю: приложения могут масштабироваться до нуля при простое, а некоторые запросы могут иметь большую задержку при запуске. • Если задано значение одного или нескольких: процесс узла выполняется непрерывно, что означает, что холодный запуск не является проблемой. |
План потребления | Приложения могут масштабироваться до нуля при простое, что означает, что некоторые запросы могут иметь большую задержку при запуске. План потребления имеет некоторые оптимизации, которые помогают уменьшить время холодного запуска, включая извлечение из предвоенных функций заполнителей, которые уже выполняются в процессах узла и языка. |
Лимиты служб
Ресурс | План потребления Flex | План категории "Премиум" | Выделенный план/ASE | Приложения-контейнеры | План потребления |
---|---|---|---|---|---|
Время ожидания по умолчанию (в мин) | 30 | 30 | 301 | 3016 | 5 |
Максимальное время ожидания (в мин) | несоотвязанное9 | несоотвязанное9 | не ограничено2 | несоотвязанное17 | 10 |
Максимальное количество исходящих подключений (на экземпляр) | unbounded | unbounded | unbounded | unbounded | 600 активных (всего 1200) |
Максимальный размер запроса (МБ)3 | 210 | 210 | 210 | 210 | 210 |
Максимальная длина строки запроса3 | 4096 | 4096 | 4096 | 4096 | 4096 |
Максимальная длина URL-адреса запроса3 | 8192 | 8192 | 8192 | 8192 | 8192 |
ACU на экземпляр | 210–840 | 100-840/210-250 10 | Различается | 100 | Различается |
Максимальный объем памяти (ГБ на экземпляр) | 4<sup4 | 3,5–14 | 1.75-256/8-256 | Различается | 1.5 |
Максимальное число экземпляров (Windows/Linux) | 100/20 | зависит от номера SKU/10011 | 10-30018 | 200/100 | 1000 15 |
Приложения-функции на план13 | 100 | 100 | не ограничено4 | не ограничено4 | 100 |
Планы службы приложений | Н/Д | 100 шт. на одну группу ресурсов | 100 шт. на одну группу ресурсов | Н/Д | 100 на регион |
Слоты развертывания для каждого приложения12 | Н/Д | 3 | 1-2011 | Не поддерживается | 2 |
Хранилище (временно)5 | 0,8 ГБ | 21–140 ГБ | 11–140 ГБ | Н/Д | 0.5 ГБ |
Хранилище (сохранено) | 0 ГБ7 | 250 ГБ | 10–1000 ГБ11 | Н/Д | 1 ГБ6,7 |
Количество личных доменов на одно приложение | 500 | 500 | 500 | Не поддерживается | 5007 |
личных доменов Поддержка SSL | включено неограниченное количество SSL-соединений на основе SNI и 1 SSL-соединение на основе IP | включено неограниченное количество SSL-соединений на основе SNI и 1 SSL-соединение на основе IP | включено неограниченное количество SSL-соединений на основе SNI и 1 SSL-соединение на основе IP | Не поддерживается | включено неограниченное количество SSL-соединений на основе SNI |
Примечания о ограничениях службы:
- По умолчанию время ожидания для среды выполнения Функций 1.x в плане Служба приложений истекло.
- Требует, чтобы для плана Служба приложений было задано значение AlwaysOn. Оплата по стандартным тарифам. Льготный период 10 минут предоставляется во время обновлений платформы.
- Эти ограничения задаются в узле.
- Фактическое количество приложений-функций, которые можно разместить, зависит от активности приложений, размера экземпляров компьютера и соответствующего использования ресурсов.
- Ограничение хранилища — это общий размер содержимого во временном хранилище для всех приложений в одном плане Служба приложений. Для планов потребления в Linux хранилище в настоящее время составляет 1,5 ГБ.
- План потребления использует общую папку Файлы Azure для сохраняемого хранилища. При предоставлении собственного Файлы Azure общего ресурса ограничения размера общего ресурса зависят от учетной записи хранения, заданной для WEBSITE_CONTENTAZUREFILECONNECTIONSTRING.
- В Linux необходимо явно подключить собственный Файлы Azure общий ресурс.
- Если приложение-функция размещено в плане потребления, поддерживается только параметр CNAME. Для приложений-функций в плане категории "Премиум" или в плане службы приложений вы можете сопоставить личный домен с помощью записи CNAME или A.
- Максимальное время ожидания выполнения не применяется. Однако льготный период, предоставленный выполнению функции, составляет 60 минут во время масштабирования и 10 минут во время обновлений платформы.
- Рабочие роли — это роли, в которых размещаются пользовательские приложения. Они доступны в трех фиксированных размерах: один виртуальный ЦП/3,5 ГБ ОЗУ; два виртуальных ЦП/7 ГБ ОЗУ; четыре виртуальных ЦП/14 ГБ ОЗУ.
- Дополнительные сведения см. в Служба приложений ограничениях.
- Включая рабочий слот.
- В настоящее время в данной подписке существует ограничение в 5000 приложений-функций.
- Размеры экземпляров плана потребления Flex в настоящее время определяются как 2 048 МБ или 4096 МБ. Дополнительные сведения см. в разделе "Память экземпляра".
- План потребления Flex имеет региональную квоту подписки, которая ограничивает общее использование памяти всех экземпляров в определенном регионе. Дополнительные сведения см. в разделе "Память экземпляра".
- Если минимальное количество реплик равно нулю, время ожидания по умолчанию зависит от конкретных триггеров, используемых в приложении.
- Если для минимального количества реплик задано одно или несколько.
- В контейнерных приложениях можно задать максимальное количество реплик, которое учитывается до тех пор, пока доступно достаточно квоты ядер.
Функции сетей
Функция | План потребления Flex | План потребления | План категории "Премиум" | Выделенный план/ASE | Приложения-контейнеры 1 |
---|---|---|---|---|---|
Ограничения для входящих IP-адресов | ✔ | ✔ | ✔ | ✔ | ✔ |
Частные конечные точки входящего трафика | ✔ | ✔ | ✔ | ||
Интеграция с виртуальной сетью | ✔ | ✔2 | ✔3 | ✔ | |
Ограничения исходящих IP-адресов | ✔ | ✔ | ✔ | ✔ |
- Дополнительные сведения см. в разделе "Сеть" в среде "Приложения контейнеров Azure".
- При работе с триггерами виртуальной сети существуют особые рекомендации.
- Только выделенный или ASE-план поддерживает интеграцию виртуальной сети, требуемой для шлюза.
Выставление счетов
Планирование | Сведения |
---|---|
План потребления Flex | Выставление счетов основано на количестве выполнения, памяти экземпляров при активном выполнении функций, а также стоимости всех всегда готовых экземпляров. Дополнительные сведения см. в разделе "Выставление счетов за план потребления Flex". |
План категории "Премиум" | План "Премиум" основан на количестве основных секунд и памяти, используемых в необходимых и предварительно подготовленных экземплярах. По крайней мере один экземпляр на план должен всегда оставаться в подготовленном состоянии. Этот план обеспечивает наиболее прогнозируемые цены. |
План ценовой категории "Выделенный" | Вы платите за приложения-функции в плане службы приложений так же, как и за другие ресурсы Службы приложений, такие как веб-приложения. Для ASE есть плоская ежемесячная ставка, которая платит за инфраструктуру и не изменяет размер среды. Кроме того, плата за план службы приложений виртуальных ЦП. Все приложения, размещенные в среде ASE, относятся к ценовой категории (SKU) Isolated. Дополнительные сведения см. в статье с обзором ASE. |
Приложения-контейнеры | Выставление счетов в приложениях контейнеров Azure основано на типе плана. Дополнительные сведения см. в разделе "Выставление счетов" в приложениях контейнеров Azure. |
План потребления | Вы платите только за время выполнения функций. Плата начисляется на основе числа операций выполнения, времени выполнения и объема использованной памяти. |
Сравнение прямых затрат между динамическими планами размещения (потребление, использование Flex потребления и премиум) см. на странице цен на Функции Azure. Цены на различные параметры Выделенного плана см. на странице цен на Службу приложений. Сведения о ценах на размещение контейнерных приложений см. в разделе о ценах на службы "Приложения контейнеров Azure".
Ограничения на создание новых приложений-функций в существующей группе ресурсов
В некоторых случаях при попытке создать план размещения для приложения-функции в существующей группе ресурсов может возникнуть одна из следующих ошибок:
- Ценовая категория не разрешена в этой группе ресурсов
- Рабочие роли <SKU_name> недоступны в группе ресурсов <resource_group_name>
Это может произойти при соблюдении следующих условий:
- Вы создаете приложение-функцию в существующей группе ресурсов, которая когда-либо содержала другое приложение-функцию или веб-приложение. Например, приложения потребления Linux не поддерживаются в той же группе ресурсов, что и выделенные планы Linux или Linux Premium.
- Новое приложение-функция создается в том же регионе, что и предыдущее приложение.
- Предыдущее приложение каким-то образом несовместимо с новым приложением. Эта ошибка может произойти между номерами SKU, операционными системами или из-за других функций уровня платформы, таких как поддержка зоны доступности.
Причина, по которой это происходит, связана с тем, как планы приложений-функций и веб-приложений сопоставляются с разными пулами ресурсов при создании. Для различных номеров SKU требуется другой набор возможностей инфраструктуры. Когда вы создаете приложение в группе ресурсов, эта группа ресурсов сопоставляется и назначается определенному пулу ресурсов. Если вы пытаетесь создать другой план в этой группе ресурсов и сопоставленный пул не имеет необходимых ресурсов, эта ошибка возникает.
В таком случае создайте приложение-функцию и план размещения в новой группе ресурсов.