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


Функции Azure размещение плана потребления Flex

Flex Consumption — это план размещения функций Azure под управлением Linux, который основывается на использовании модели выставления счетов без сервера. Это обеспечивает большую гибкость и возможность настройки, введя частные сети, выбор размера памяти экземпляра и функции быстрого и масштабируемого масштабирования по-прежнему на основе бессерверной модели.

Вы можете просмотреть конечные примеры, демонстрирующие план потребления Flex в репозитории образцов плана потребления Flex.

Льготы

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

  • Сокращенное время холодного запуска: включите всегда готовые экземпляры для ускорения времени холодного запуска по сравнению с планом потребления.
  • Поддержка виртуальной сети. Интеграция виртуальной сети позволяет бессерверному приложению выполняться в виртуальной сети.
  • Per-Function Масштабирование. Каждая функция в приложении масштабируется независимо на основе рабочей нагрузки, что может привести к более эффективному выделению ресурсов.
  • Улучшенная обработка параллелизма: улучшенная обработка параллельных выполнений с настраиваемыми параметрами параллелизма для каждой функции.
  • Гибкая конфигурация памяти: Flex Consumption предлагает несколько вариантов размера памяти экземпляра , что позволяет оптимизировать требования к конкретной рабочей нагрузке.

Эта таблица помогает вам напрямую сравнить особенности Flex Consumption с тарифным планом Consumption.

Функция Потребление Потребление Flex
Сведение к нулю ✅ Да ✅ Да
Поведение масштабирования Ориентированный на события Управляемое событиями (быстрое)
Виртуальные сети ❌ Не поддерживается. ✅ Поддержанный
Выделенные вычислительные мощности (уменьшение холодных запусков) ❌ Никакой ✅ Всегда готовые экземпляры (необязательно)
Выставление счетов Только во время выполнения Время выполнения и всегда готовые экземпляры
Экземпляры горизонтального масштабирования (максимум) 200 1000

Для полного сравнения плана Flex по потреблению с обычным планом потребления и всеми другими типами планов и размещения см. в разделе масштабирование и параметры размещения функций.

Интеграция виртуальной сети

Flex Consumption расширяет традиционные преимущества плана потребления, добавляя поддержку интеграции виртуальной сети. Когда приложения выполняются в плане потребления Flex, они могут подключаться к другим службам Azure, защищенным внутри виртуальной сети. Все это время позволяет воспользоваться бессерверным выставлением счетов и масштабированием вместе с преимуществами масштабирования и пропускной способности плана потребления Flex. Дополнительные сведения см. в разделе "Включение интеграции виртуальной сети".

Память экземпляра

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

В настоящее время Flex Consumption предлагает следующие параметры размера памяти экземпляра: 512 МБ, 2048 МБ и 4096 МБ.

При выборе размера памяти экземпляра, используемого с приложениями, следует учитывать следующие моменты:

  • Размер памяти экземпляра размером 2048 МБ — это значение по умолчанию и должно использоваться для большинства сценариев. Размеры памяти экземпляра 512 МБ и 4096 МБ доступны для сценариев, которые лучше всего соответствуют требованиям к одновременному выполнению или вычислительной мощности приложения. Дополнительные сведения см. в разделе "Настройка памяти экземпляра".
  • Размер памяти экземпляра можно изменить в любое время. Дополнительные сведения см. в разделе "Настройка памяти экземпляра".
  • Ресурсы экземпляров разделяются между вашим кодом функции и хостом функций.
  • Чем больше размер памяти экземпляра, тем больше каждый экземпляр может обрабатывать как одновременные выполнения, так и более интенсивные рабочие нагрузки ЦП или памяти. Конкретные решения масштабирования зависят от рабочей нагрузки.
  • Параллелизм триггеров HTTP по умолчанию определяется размером памяти экземпляра. Дополнительные сведения см. в разделе параллелизм триггера HTTP.
  • Доступные ЦП и пропускная способность сети предоставляются пропорционально определенному размеру экземпляра.

Масштабирование для каждой функции

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

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

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

Группы масштаба Триггеры в группе Значение параметров
Триггеры HTTP Триггер HTTP
Триггер SignalR
http
Триггеры хранилища BLOB-объектов
(Сетка событий)
Триггер хранилища BLOB blob
Устойчивые функции Триггер оркестрации
Триггер действия
Триггер сущности
durable

Все остальные функции в приложении масштабируются по отдельности в собственных наборах экземпляров, которые определяются соглашением function:<NAMED_FUNCTION>.

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

Flex Consumption включает функцию «всегда готов», которая позволяет выбирать экземпляры, постоянно работающие и назначенные каждой из групп масштабирования функций или индивидуальным функциям. Всегда готов — отличный вариант для сценариев, в которых требуется минимальное количество экземпляров, всегда готовых к обработке запросов. Например, чтобы уменьшить задержку холодного запуска приложения. Значение по умолчанию — 0 (ноль).

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

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

Как настроить всегда готовые экземпляры, см. в разделе Set always ready instance counts.

Конкурентность

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

Сведения о том, как задать ограничения параллелизма для функций триггера HTTP, см. в разделе "Настройка ограничений параллелизма HTTP". Сведения о настройке ограничений параллелизма для функций триггеров, отличных от HTTP, см. в статье " Масштабирование целевой базы".

Развертывание

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

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

Существует два режима, с помощью которых затраты определяются при запуске приложений в плане потребления Flex. Режим определяется для каждого экземпляра отдельно.

Режим выставления счетов Описание
По запросу При выполнении в режиме по требованию плата взимается только за время выполнения кода функции на ваших доступных экземплярах. В режиме спроса не требуется минимальное количество экземпляров. Счета выставляются за:

• Общий объем памяти, выделенной в период, когда каждый экземпляр по запросу активно выполняет функции (в ГБ-секундах), минус бесплатный грант в ГБ-секундах за месяц.
• Общее количество выполнений, минус бесплатное предоставление (число) выполнений в месяц.
Всегда готов Можно настроить один или несколько экземпляров, назначенных определенным типам триггеров (HTTP/Durable/Blob) и отдельным функциям, которые всегда доступны для обработки запросов. Когда у вас включены любые постоянно готовые экземпляры, вам выставляются счета за:

• Общий объем памяти, резервируемой во всех постоянно готовых экземплярах, что называется базовым уровнем (в ГБ-секундах).
• Общий объем памяти, предоставленной в течение времени, когда каждый всегда готовый экземпляр функции активно выполняет задачи (в ГБ-секундах).
• Общее количество казней.

В системе немедленной выставки счетов нет бесплатных грантов.

Самые up-to-date сведения о ценах на выполнение, всегда готовые базовые затраты и бесплатные гранты для выполнения по запросу, см. на странице цен на Функции Azure.

Минимальный оплачиваемый период выполнения для обоих режимов выполнения составляет 1000 мс. После этого оплачиваемый период действия округляется до ближайшего 100 мс. Подробные сведения о счетчиках выставления счетов по плану потребления Flex см. в справочнике по мониторингу.

Дополнительные сведения о том, как вычисляются затраты при использовании тарифа Flex Consumption, включая примеры, см. в разделе «Затраты на основе потребления».

Поддерживаемые версии стека языков

В этой таблице показаны версии стека языков, поддерживаемые в настоящее время для приложений Flex Consumption:

Языковой стек Требуемая версия
C# (изолированный режим процесса)1 .NET 82, .NET 93
Ява Java 11, Java 17, Java 21
Node.js Node.js 20, Node.js 22
PowerShell PowerShell 7.4
Питон Python 3.10, Python 3.11, Python 3.12
  1. Режим обработки C# не поддерживается. Вместо этого необходимо перенести проект кода .NET для запуска в изолированной рабочей модели.
  2. Требуется версия 1.20.0 или более поздняя для Microsoft.Azure.Functions.Worker и версия 1.16.2 или более поздняя для Microsoft.Azure.Functions.Worker.Sdk.
  3. Требуется версия 2.0.0 или более поздняя для Microsoft.Azure.Functions.Worker и Microsoft.Azure.Functions.Worker.Sdk.

Квоты памяти региональной подписки

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

В настоящее время каждый регион в данной подписке имеет квоту 512,000 MB ограничения памяти по умолчанию для всех экземпляров приложений, работающих на тарифных планах гибкого потребления. Эта квота означает, что в заданной подписке и регионе можно использовать любое сочетание размеров памяти виртуальных машин и их количества, если они остаются в пределах квоты. Например, каждый из следующих примеров означает, что квота достигнута, и приложения перестают масштабироваться:

  • У вас есть одно приложение размером 512 МБ, масштабируемое до 250 экземпляров, а второе приложение размером 512 МБ масштабируется до 750 экземпляров.
  • У вас есть одно приложение размером 512 МБ, масштабируемого до 1000 экземпляров.
  • У вас есть одно приложение размером 2 048 МБ, масштабируемое до 100, а второе — 2048 МБ, масштабируемое до 150 экземпляров.
  • У вас есть одно приложение размером 2 048 МБ, которое масштабируется до 250 экземпляров
  • У вас есть одно приложение размером 4096 МБ, которое масштабируется до 125 экземпляров
  • У вас есть одно приложение размером 4 096 МБ, масштабируемого до 100, а одно приложение размером 2 048 МБ масштабируется до 50 экземпляров.

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

Устаревшие свойства и параметры

В плане потребления Flex многие из стандартных параметров приложения и свойств конфигурации сайта устарели или перемещены и не должны использоваться при автоматизации создания ресурсов функционального приложения. Дополнительные сведения см. в разделе о прекращении использования плана потребления Flex.

Рекомендации

При использовании плана потребления Flex следует учитывать следующие рекомендации.

  • Приложения на план. Для каждого плана разрешено только одно приложение на план потребления Flex.
  • Хост: для инициализации приложения имеется 30-секундное время ожидания. Когда функциональное приложение запускается дольше 30 секунд, возможно, вы увидите System.TimeoutException записи логи, связанные с gRPC. Сейчас вы не можете настроить этот тайм-аут. Дополнительные сведения см. в этом рабочем элементе хоста.
  • Устойчивые функции: служба хранилища Azure в настоящее время является единственным поддерживаемым поставщиком хранилища для устойчивых функций при размещении в плане потребления Flex. Ознакомьтесь с рекомендациями по размещению Durable Functions в тарифном плане Flex Consumption.
  • Интеграция виртуальной сети Убедитесь, что Microsoft.App поставщик ресурсов Azure включен для подписки, выполнив следующие инструкции. Делегирование подсети, необходимое для приложений Flex Consumption, — это Microsoft.App/environments.
  • Триггеры: Хотя все триггеры полностью поддерживаются в плане потребления Flex, триггер хранилища BLOB поддерживает только источник Event Grid. Приложения-функции, отличные от C#, должны использовать версию [4.0.0, 5.0.0)пакета расширений или более позднюю версию.
  • Регионы: сейчас поддерживаются не все регионы. Дополнительные сведения см. в разделе "Просмотр поддерживаемых в настоящее время регионов".
  • Развертывания: Слоты развертывания в настоящее время не поддерживаются.
  • Прокси-серверы: прокси-серверы функций не поддерживаются. Рассмотрите возможность интеграции приложений-функций с помощью службы "Управление API Azure".
  • Масштабирование: самый низкий максимальный масштаб в настоящее время 40. Самое высокое поддерживаемое в настоящее время значение 1000.
  • Управляемые зависимости: управляемые зависимости в PowerShell не поддерживаются с помощью Flex Consumption. Вместо этого необходимо отправить модули с содержимым приложения.
  • Параметры диагностики: параметры диагностики в настоящее время не поддерживаются.
  • Сертификаты: загрузка сертификатов с помощью параметра приложения WEBSITE_LOAD_CERTIFICATES, управляемых сертификатов, сертификатов службы приложений и других функций на основе сертификатов платформы в настоящее время не поддерживается.
  • Ссылки на Key Vault и конфигурацию приложений. В настоящее время нельзя использовать ссылки на Azure Key Vault или Конфигурацию приложений Azure в параметрах приложения плана потребления Flex, если эти службы ограничены сетевым доступом. Это ограничение применяется даже в том случае, если приложение-функция включает интеграцию виртуальной сети. Если нужно использовать ограниченные экземпляры Key Vault или App Configuration, следует использовать клиентские SDK для ручного извлечения значений из ссылок в этих сервисах. Расширения привязки функций также не имеют доступа к этим ссылкам, что означает, что необходимо использовать клиентские SDK Azure для доступа к данным удаленных сервисов из кода функции.
  • Часовые пояса: WEBSITE_TIME_ZONE и TZ параметры приложения в настоящее время не поддерживаются при работе с планом потребления Flex.

Параметры размещения Функций Azure: создание приложений-функций и управление ими в плане потребления Flex