Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При создании приложения-функции в Azure необходимо выбрать вариант размещения приложения. Azure предоставляет следующие варианты размещения кода функции:
| Вариант размещения | Сервис | Доступность | Поддержка контейнеров |
|---|---|---|---|
| План потребления Flex | Функции Azure (облачные функции) | Общедоступно (GA) | нет |
| План категории "Премиум" | Функции Azure (облачные функции) | Генеральная Ассамблея | Линукс |
| Выделенный план | Функции Azure (облачные функции) | Генеральная Ассамблея | Линукс |
| Контейнерные приложения | Контейнеры приложений Azure | Генеральная Ассамблея | Линукс |
| План потребления (устаревшая версия) | Функции Azure (облачные функции) | Windows — GA Linux — снято с производства |
нет |
Это важно
План потребления — это устаревший тарифный план для размещения. Для новых бессерверных приложений-функций используйте план потребления Flex. Для существующих приложений на плане потребления выполните миграцию на план Flex Consumption.
Инфраструктура Служба приложений Azure на виртуальных машинах Linux и Windows обеспечивает варианты размещения для Функции Azure. Вариант размещения, который вы выбираете, определяет следующее поведение:
- Как масштабируется функциональное приложение.
- Ресурсы, доступные для каждого экземпляра приложения-функции.
- Поддержка расширенных функций, таких как подключение Azure Virtual Network.
- Поддержка контейнеров Linux.
Выбранный план также влияет на затраты на выполнение кода функции. Дополнительные сведения см. в разделе о выставлении счетов.
В этой статье представлено подробное сравнение различных вариантов размещения. Дополнительные сведения о запуске кода функции и управлении ими в контейнерах Linux см. в статье Поддержка контейнеровLinux в Функции Azure.
Обзор планов
В следующей таблице приведены преимущества различных вариантов размещения функций Azure.
| Вариант | Льготы |
|---|---|
| План потребления Flex | Быстрое горизонтальное масштабирование с гибкими параметрами вычислений, интеграцией виртуальной сети и бессерверным выставлением счетов по мере использования. В плане потребления Flex экземпляры функций динамически масштабируются (до 1000) на основе настроенного параллелизма каждого экземпляра, входящих событий и рабочих нагрузок для каждой функции для оптимальной эффективности. Рассмотрите план потребления Flex, когда: ✔ Вам нужна бессерверная платформа для вашего кода функции, оплачивая только за выполнение по запросу. ✔ Для безопасного доступа к ресурсам Azure требуется подключение к виртуальной сети. ✔ Ваши рабочие нагрузки переменчивы и могут переходить от отсутствия активности к быстрому масштабированию, управляемому событиями. ✔ Вы хотите настроить вычисления с размерами памяти (512 МБ, 2 048 МБ или 4096 МБ) и уменьшить количество холодных запусков с помощью одного или нескольких предварительно подготовленных (всегда готовых) экземпляров. |
| План категории "Премиум" | Автоматически масштабируется по требованию с помощью предварительно разогретых рабочих процессов, которые запускают приложения без задержки после простоя, работают на более мощных инстанциях и подключаются к виртуальным сетям. Рассмотрим план Функции Azure Premium в следующих ситуациях: ✔ Приложения-функции выполняются непрерывно или почти непрерывно. ✔ Вы хотите больше управления экземплярами и хотите развернуть несколько приложений-функций в одном плане с масштабированием на основе событий. ✔ У вас большое количество небольших выполнений и высокая стоимость выполнения, но низкое потребление ГБ-секунд в плане потребления. ✔ Вам требуется больше параметров ЦП или памяти, чем предоставляются планами потребления. ✔ Код требуется выполнять дольше максимального времени выполнения, разрешенного в плане потребления. ✔ Для безопасного доступа к ресурсам Azure требуется подключение к виртуальной сети. ✔ Вы хотите предоставить пользовательский образ Linux, в котором будут выполняться функции. |
| Выделенный план | Выполняйте функции в рамках плана службы приложений по стандартным тарифам плана службы приложений. Лучше всего подходит для длительных сценариев, когда нельзя использовать Устойчивые функции. План службы приложений стоит использовать в следующих случаях: ✔ У вас есть виртуальные машины, которые недоиспользуются и уже работают с другими инстанциями App Service. ✔ Необходимо иметь полностью предсказуемое выставление счетов, либо вручную масштабировать экземпляры. ✔ Вы хотите запустить несколько веб-приложений и приложений-функций в одном плане ✔ Вам нужен доступ к более крупному выбору размера вычислительных ресурсов. ✔ Полная изоляция вычислений и безопасный сетевой доступ, предоставляемый Среда службы приложений (ASE). ✔ Очень высокая загрузка памяти и высокий масштаб (ASE). |
| Контейнерные приложения | Создание и развертывание контейнерных приложений-функций в полностью управляемой среде, размещенной Контейнеры приложений Azure. Используйте модель программирования Функции Azure для создания приложений на основе событий, бессерверных, облачных собственных функций. Запустите свои функции вместе с другими микрослужбами, API, веб-сайтами и рабочими процессами в качестве размещенных в контейнере программ. Рассмотрите возможность размещения функций в приложениях-контейнерах в следующих ситуациях: ✔ Вы хотите контролировать образ контейнера и упаковать пользовательские библиотеки с кодом функции для поддержки корпоративных приложений. ✔ Необходимо перенести выполнение кода из локальных или устаревших приложений в облачные микрослужбы, работающие в контейнерах. ✔ Если вы хотите избежать затрат и сложности управления кластерами Kubernetes и выделенными вычислительными ресурсами. ✔ Вашим функциям требуется высокопроизводительная мощность обработки, предоставляемая выделенными вычислительными ресурсами GPU. |
| План потребления (устаревшая версия) | Оплачивайте вычислительные ресурсы только во время работы функций (оплата по мере использования) с автоматическим масштабированием на Windows. В плане потребления экземпляры функций динамически добавляются и удаляются на основе количества входящих событий. Рассмотрите план потребления, когда: ✔ У вас есть зависимость от Windows. Например, используя среду выполнения версии 1, полную .NET Framework или специальные функции Windows, такие как определенные модули PowerShell. ✔ Требуется бессерверная модель выставления счетов и оплата только при выполнении функций. Для новых бессерверных приложений-функций используйте вместо этого план потребления Flex . |
Остальные таблицы в этой статье сравнивают параметры размещения на основе различных функций и поведения.
Поддержка операционных систем
В этой таблице показана поддержка операционных систем для вариантов размещения.
| Хостинг | Развертывание Linux1 | развертывание Windows2 |
|---|---|---|
| План потребления Flex |
✅ Только для кода ❌ Контейнер (не поддерживается) |
❌ Не поддерживается. |
| План категории "Премиум" |
✅ Только для кода ✅ Контейнер |
✅ Только для кода |
| Выделенный план |
✅ Только для кода ✅ Контейнер |
✅ Только для кода |
| Контейнерные приложения | ✅ Только контейнер | ❌ Не поддерживается. |
| План потребления |
✅ Только для кода (устаревшее) ❌ Контейнер (не поддерживается) |
✅ Только для кода (устаревшая версия) |
- Linux является единственной поддерживаемой операционной системой для стека среды выполнения Python.
- Развертывания Windows представлены исключительно в виде кода. Функции Azure в настоящее время не поддерживает контейнеры Windows.
Это важно
Приложения-функции, работающие на устаревшей среде выполнения версии 3 в Linux в плане потребления, перестанут функционировать после 30 сентября 2026 г. Чтобы избежать нарушения работы службы, перенесите приложение в среду выполнения версии 4.
Возможность размещения приложений-функций на Linux в тарифе потребления снимется с обслуживания 30 сентября 2028 года. План потребления Linux не предусматривает новых функций или языковых версий. Приложения, работающие на Windows в плане потребления, в настоящее время не затрагиваются. Мигрируйте свои приложения на план Flex Consumption до даты окончания обслуживания.
Длительность таймаута функции приложения
Свойство functionTimeout в файле проекта host.json задает длительность ожидания функций в приложении-функции. Это свойство применяется специально к выполнению функций. После запуска триггера выполнения функции функция должна вернуть или ответить в течение времени ожидания. Когда выполнение превышает эту длительность, возникает ошибка времени ожидания, а рабочий процесс языка перезапускается. Для приложений C#, выполняющихся в процессе, сам процесс узла перезапускается. Чтобы избежать времени ожидания и последующих перезапусков процесса, важно написать надежные функции. Дополнительные сведения см. в разделе Улучшение производительности и надежности Функции Azure.
В следующей таблице приведены значения по умолчанию и максимальные значения (в минутах) для конкретных планов:
| Планирование | По умолчанию. | Максимум1 |
|---|---|---|
| План потребления Flex | 30 | Неограниченное2 |
| План категории "Премиум" | 304 | Неограниченное2 |
| Выделенный план | 304 | Безграничный3 |
| Контейнерные приложения | 30 | Неограниченный5 |
| План потребления | 5 | 10 |
- Независимо от параметра времени ожидания приложения-функции, 230 секунд — это максимальное время, затраченное функцией HTTP для ответа на запрос. Это ограничение существует в связи с установленным по умолчанию временем бездействия в балансировщике нагрузки Azure. Для более длительного времени обработки подумайте об использовании асинхронного шаблона Устойчивые функции или о том, чтобы отложить фактическую работу и вернуть немедленный ответ.
- Не применяется максимальное время ожидания выполнения. Однако льготный период, предоставленный выполнению функции, составляет 60 минут во время масштабирования планов Flex Consumption и Premium, а льготный период 10 минут предоставляется во время обновлений платформы.
- Требуется установить для плана службы приложений значение Always On. Льготный период 10 минут предоставляется во время обновлений платформы.
- Время ожидания по умолчанию для среды выполнения узла функций версии 1.x неограниченное.
- Если минимальное количество реплик равно нулю, время ожидания по умолчанию зависит от конкретных триггеров, используемых в приложении.
Эти значения предполагают, что процесс узла Функции Azure запускается и выполняется правильно. Максимальное время ожидания для запуска языкового рабочего процесса составляет 60 секунд. Время ожидания запуска рабочего процесса сейчас не настраивается.
Поддержка языков
Дополнительные сведения о поддержке текущего стека на родном языке в Functions см. в разделе Поддерживаемые языки в Функции Azure.
Масштаб
В следующей таблице сравниваются режимы масштабирования различных планов размещения.
Максимальное количество экземпляров предоставляется для каждого функционального приложения (потребительский) или для каждого тарифного плана (Премиум/Выделенный), если не указано иное.
| Планирование | Масштабирование | Максимальное число экземпляров |
|---|---|---|
| План потребления Flex | Быстрые решения по масштабированию на основе событий вычисляются на основе каждой функции, называемой масштабированием для каждой функции, которая обеспечивает более детерминированный способ масштабирования функций в приложении. За исключением HTTP, хранилища BLOB-объектов, Сетки событий и Устойчивые функции, все остальные типы триггеров функций в вашем приложении масштабируются на независимых экземплярах. Все HTTP-триггеры в вашем приложении масштабируются как группа в одних и тех же экземплярах; как и все триггеры хранилища Blob (Сетка событий). Все триггеры Устойчивые функции также совместно используют экземпляры и масштабируются вместе. | 10001 |
| План категории "Премиум" | Событийно-ориентированный. Масштабирование выполняется автоматически, даже в периоды высокой нагрузки. Функции Azure инфраструктура масштабирует ресурсы ЦП и памяти путем добавления дополнительных экземпляров узла функций на основе количества событий, на которых активируются его функции. |
Windows: 1006 Linux: 20-1002,6 |
| Выделенный план | Ручное/автомасштабирование | 10-303 100 (АСЕ) |
| Контейнерные приложения | Событийно-ориентированный. Масштабирование выполняется автоматически, даже в периоды высокой нагрузки. Функции Azure инфраструктура масштабирует ресурсы ЦП и памяти путем добавления дополнительных экземпляров узла функций на основе количества событий, на которых активируются его функции. | 300-10004 |
| План потребления | Событийно-ориентированный. Автоматическое масштабирование на основе источника событий. Инфраструктура функций масштабирует ресурсы путем добавления дополнительных экземпляров узла функции на основе количества входящих событий триггера. |
Windows: 200 Linux: 1005 |
- План Flex Consumption имеет региональную квоту подписки, которая ограничивает общее использование памяти всех экземпляров в заданном регионе. Дополнительные сведения см. в статье о квотах памяти региональной подписки. Планы потребления Flex в настоящее время поддерживают только Linux.
- В некоторых регионах приложения Linux в плане "Премиум" могут масштабироваться до 100 экземпляров. Дополнительную информацию см. в статье "План Премиум".
- Конкретные ограничения для различных вариантов плана в Службе приложений см. в разделе Ограничения плана Службы приложений.
- В контейнерных приложениях по умолчанию используется 10 экземпляров, но можно задать максимальное количество реплик, которое имеет общее максимальное значение 1000. Этот параметр учитывается до тех пор, пока доступно достаточно квоты ядер. Дополнительные сведения см. в разделе Quotas для Контейнеры приложений Azure. При создании приложения-функции на портале Azure вы можете ограничиться 300 экземплярами.
- Во время масштабирования существует ограничение в 500 экземпляров на подписку в час для приложений Linux в плане использования.
- Для триггеров http с ограниченным доступом к частной конечной точке масштабирование ограничено не более чем 20 экземплярами.
Поведение холодного запуска
| Планирование | Сведения |
|---|---|
| План потребления Flex | Улучшена холодная загрузка даже при масштабировании до нулевого уровня. Поддерживает всегда готовые экземпляры для дальнейшего уменьшения задержки при подготовке новых экземпляров. |
| План категории "Премиум" | Поддерживает всегда готовые экземпляры для предотвращения холодных запусков, позволяя содержать один или несколько всегда теплых экземпляров. |
| Выделенный план | При работе в выделенном плане хост функций может непрерывно запускаться на определённом количестве экземпляров, что означает, что проблема холодного запуска на самом деле не возникает. |
| Контейнерные приложения |
Зависит от минимального количества реплик: • Если задано равное нулю: приложения могут масштабироваться до нуля при простое, а некоторые запросы могут иметь большую задержку при запуске. • Если задано одно или несколько значений: хост-процесс выполняется непрерывно, что означает, что холодный запуск не является проблемой. |
| План потребления | Приложения могут масштабироваться до нуля при простое, что означает, что некоторые запросы могут иметь большую задержку при запуске. План потребления имеет некоторые оптимизации, которые помогают уменьшить время холодного запуска, включая извлечение из предварительно разогретых функций-заглушек, которые уже имеют запущенные процессы узла и языка. |
Лимиты услуг
| Ресурс | План потребления Flex | План категории "Премиум" | Специальный план/ASE | Контейнерные приложения | План потребления |
|---|---|---|---|---|---|
| Длительность времени ожидания по умолчанию (мин) | 30 | 30 | 301 | 3016 | 5 |
| Максимальная длительность времени ожидания (мин) | неограниченный9 | неограниченный9 | не ограничено2 | неограниченный17 | 10 |
| Максимальное количество исходящих подключений (на экземпляр) | неограниченный | неограниченный | см. ограничения службы приложений | неограниченный | 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 | Различается |
| Максимальный размер памяти (ГБ на экземпляр) | 414 | 3,5–14 | 1.75-256/8-256 | Различается | 1.5 |
| Максимальное число экземпляров (Windows | Linux)15 | n/a | 1000 | 20-100 | 10-30 (100 ASE)11 | 300-100018 | 200 | 100 |
| Количество приложений-функций на план13 | 1 | 100 | не ограничено4 | не ограничено4 | 100 |
| Планы службы приложений | n/a | 100 шт. на одну группу ресурсов | 100 шт. на одну группу ресурсов | n/a | 100 на регион |
| Слоты развертывания на каждое приложение12 | n/a | 3 | 1-2011 | Не поддерживается | 2 |
| Хранилище (временно)5 | 0,8 ГБ | 21–140 ГБ | 11–140 ГБ | n/a | 0.5 ГБ |
| Хранилище (персистентное) | 0 ГБ7 | 250 ГБ | 10–1000 ГБ11 | n/a | 1 ГБ6,7 |
| Пользовательские домены для приложения | 258 | 500 | 500 | Не поддерживается | 5008 |
| Поддержка TLS/SSL для личного домена | неограниченное SSL-соединение SNI и одно SSL-соединение через IP-адрес | неограниченное SSL-соединение SNI и одно SSL-соединение через IP-адрес | неограниченное SSL-соединение SNI и одно SSL-соединение через IP-адрес | Не поддерживается | включено неограниченное количество SSL-соединений на основе SNI |
Примечания о ограничениях службы:
- По умолчанию время ожидания для среды выполнения Функций 1.x в плане службы приложений неограниченное.
- Требуется установить для плана службы приложений значение Always On. Оплата по стандартным тарифам. Льготный период времени в 10 минут предоставляется для функций с триггером HTTP во время обновлений платформы, но не для других триггеров.
- Эти ограничения установлены в хосте.
- Фактическое количество приложений-функций, которые можно разместить, зависит от активности приложений, размера экземпляров компьютера и соответствующего использования ресурсов.
- Ограничение хранилища означает общий размер содержимого во временном хранилище для всех приложений в одном плане службы приложений. Для планов потребления в Linux хранилище в настоящее время составляет 1,5 ГБ.
- План потребления использует общую папку Файлы Azure для постоянного хранилища. Когда вы предоставляете собственную общую папку Файлы Azure, конкретные ограничения по размеру зависят от учетной записи хранения, выбранной для WEBSITE_CONTENTAZUREFILECONNECTIONSTRING.
- В Linux необходимо explicititly подключить собственную общую папку Файлы Azure.
- Если ваше функциональное приложение размещено в Плане потребления, поддерживается только параметр CNAME. Для функциональных приложений в плане категории "Премиум" или в плане службы приложений вы можете привязать пользовательский домен с помощью записи типа CNAME или A.
- Максимальная продолжительность времени ожидания выполнения не установлена. Однако льготный период, предоставленный выполнению функции, составляет 60 минут во время масштабирования и 10 минут во время обновлений платформы.
- Роли рабочих — это роли, в которых происходит размещение приложений клиентов. Они доступны в трех фиксированных размерах: один виртуальный ЦП/3,5 ГБ ОЗУ; два виртуальных ЦП/7 ГБ ОЗУ; четыре виртуальных ЦП/14 ГБ ОЗУ.
- См. ограничения службы приложений для получения подробностей.
- Включая производственный слот.
- В настоящее время в данной подписке существует ограничение в 5 000 приложений-функций.
- Размеры экземпляров плана потребления Flex в настоящее время определяются как 512 МБ, 2048 МБ или 4096 МБ. Дополнительные сведения см. в разделе «Память экземпляра».
- Дополнительные сведения см. в статье о сравнении масштабирования.
- Если минимальное количество реплик равно нулю, время ожидания по умолчанию зависит от конкретных триггеров, используемых в приложении.
- Если минимальное количество реплик задано как одно или больше.
Функции сетей
| Функция | План потребления Flex | План потребления | План категории "Премиум" | Специальный план/ASE | Приложения-контейнеры1 |
|---|---|---|---|---|---|
| Ограничения для входящего доступа | ✅ | ✅ | ✅ | ✅ | ✅ 2 |
| Частные конечные точки (входящий трафик) | ✅ | ❌ | ✅ | ✅ | ❌ |
| Конечные точки службы (входящий трафик) | ✅ | ❌ | ✅ | ✅ | ✅ |
| Интеграция виртуальной сети (исходящий трафик) | ✅ | ❌ | ✅ | ✅ 3 | ✅ |
| Гибридные подключения | ❌ | ❌ | ✅ (только Windows) | ✅ (только Windows) | ✅ (только Windows) |
- Дополнительные сведения см. в разделе Networking в среде Контейнеры приложений Azure.
- Управляется с помощью конфигурации ингресса в среде Container Apps.
- План Dedicated/ASE также поддерживает интеграцию виртуальной сети, требуемую для шлюза.
Выставление счетов
| Планирование | Сведения |
|---|---|
| План потребления Flex | Выставление счетов основано на числе выполнений, памяти экземпляров, когда они активно выполняют функции, а также стоимости любых всегда готовых экземпляров. Дополнительные сведения см. в разделе "Выставление счетов за план потребления Flex". |
| План категории "Премиум" | План "Премиум" основан на количестве ядерных секунд и памяти, используемых в нужных и предварительно прогретых экземплярах. По крайней мере один экземпляр по плану должен всегда быть в готовности. Этот план обеспечивает наиболее прогнозируемые цены. |
| Выделенный план | Вы платите за приложения-функции в плане службы приложений так же, как и за другие ресурсы Службы приложений, такие как веб-приложения. Для ASE предусмотрена фиксированная ежемесячная плата за инфраструктуру, которая не зависит от размера среды. Кроме того, есть стоимость на план App Service за виртуальный процессор (vCPU). Все приложения, размещенные в ASE, находятся в изолированной модели ценообразования. Дополнительные сведения см. в обзорной статье ASE. |
| Контейнерные приложения | Выставление счетов в Контейнеры приложений Azure основано на типе плана. Для получения дополнительной информации см. раздел Выставление счетов в Контейнеры приложений Azure. |
| План потребления | Вы платите только за время выполнения функций. Плата начисляется на основе числа операций выполнения, времени выполнения и объема использованной памяти. |
Прямое сравнение затрат между динамическими планами размещения (потребление, использование Flex и Премиум) см. на странице цен Функции Azure. Цены на различные параметры Выделенного плана см. на странице цен на Службу приложений. Для получения информации о ценах на размещение контейнерных приложений см. Цены на Контейнеры приложений Azure.
Ограничения на создание новых приложений-функций в существующей группе ресурсов
В некоторых случаях при попытке создать план размещения для приложения-функции в существующей группе ресурсов может возникнуть одна из следующих ошибок:
- Ценовая категория не разрешена в этой группе ресурсов
- <сотрудники SKU_name> недоступны в группе ресурсов <resource_group_name>
Эти ошибки могут возникать при выполнении следующих условий:
- Вы создаете функциональное приложение в существующей группе ресурсов, которая еще не содержит другого функционального приложения или веб-приложения. Например, приложения потребления Linux не поддерживаются в той же группе ресурсов, что и выделенные планы Linux или Linux Premium.
- Новое функциональное приложение создается в том же регионе, что и предыдущее приложение.
- Предыдущее приложение каким-то образом несовместимо с новым приложением. Эта несовместимость может возникать между версиями, операционными системами или из-за других функций уровня платформы, таких как поддержка зоны доступности.
Планы приложений-функций и веб-приложений сопоставляются с различными пулами ресурсов при их создании. Для различных планов требуется другой набор возможностей инфраструктуры. Когда вы создаете приложение в группе ресурсов, группа ресурсов сопоставляется с определённым пулом ресурсов. Если вы пытаетесь создать другой план в этой группе ресурсов, а сопоставленный пул не имеет необходимых ресурсов, возникают ранее упомянутые ошибки.
Если возникнет такая ситуация, создайте функциональное приложение и план размещения в новой группе ресурсов.
Следующие шаги
- технологии развертывания в Функции Azure
- руководство разработчика Функции Azure