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


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

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

Внимание

План потребления Flex в настоящее время находится в предварительной версии. Список текущих ограничений при использовании этого плана размещения см. в разделе "Рекомендации". Текущие сведения о выставлении счетов во время предварительной версии см. в разделе "Выставление счетов".

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

Льготы

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

Эта таблица позволяет напрямую сравнить функции Flex Consumption с планом размещения потребления:

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

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

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

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

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

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

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

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

  • Размер памяти экземпляра размером 2048 МБ — это значение по умолчанию и должно использоваться для большинства сценариев. Используйте размер памяти экземпляра 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. Каждый режим определяется на основе каждого экземпляра.

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

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

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

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

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

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

Актуальные сведения о ценах на выполнение, всегда готовых базовых затрат и бесплатных грантах по запросу см. на странице Функции Azure цен.

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

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

Языковой стек Требуемая версия
C# (изолированный режим процесса)1 .NET 82
Java Java 11, Java 17
Node.js Узел 20
PowerShell PowerShell 7.4
Python Python 3.10, Python 3.11

1Режим обработки C# не поддерживается. Вместо этого необходимо перенести проект кода .NET для запуска в изолированной рабочей модели.
2Требуется версия или более поздняя версия 1.20.0 Microsoft.Azure.Functions.Worker и более поздней версии 1.16.2 Microsoft.Azure.Functions.Worker.Sdk.

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

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

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

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

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

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

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

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

  • Узел: для инициализации приложения имеется 30 секунд. Если приложение-функция занимает более 30 секунд, чтобы запустить, вы увидите записи gRPC, связанные с System.TimeoutException. Это время ожидания будет настроено, и более четкое исключение будет реализовано в рамках этого рабочего элемента узла.
  • Устойчивые функции. В настоящее время служба хранилища Azure является единственным поддерживаемым поставщиком хранилища для Устойчивые функции при размещении в плане потребления Flex. Ознакомьтесь с рекомендациями по размещению Устойчивые функции в плане потребления Flex.
  • Интеграция виртуальной Microsoft.App сети гарантирует, что поставщик ресурсов Azure включен для подписки, выполнив следующие инструкции. Делегирование подсети, необходимое для приложений Microsoft.App/environmentsFlex Consumption.
  • Триггеры: все триггеры полностью поддерживаются, кроме триггеров Kafka и SQL Azure. Триггер хранилища BLOB-объектов поддерживает только источник сетки событий. Приложения-функции, отличные от C#, должны использовать версию [4.0.0, 5.0.0) пакета расширений или более позднюю версию.
  • Регионы: сейчас поддерживаются не все регионы. Дополнительные сведения см. в разделе "Просмотр поддерживаемых в настоящее время регионов".
  • Развертывания. Слоты развертывания в настоящее время не поддерживаются.
  • Масштаб: самый низкий максимальный масштаб в предварительной версии 40. Самое высокое поддерживаемое в настоящее время значение 1000.
  • Управляемые зависимости: управляемые зависимости в PowerShell не поддерживаются с помощью Flex Consumption. Вместо этого необходимо определить собственные пользовательские модули.
  • Параметры диагностики: параметры диагностики в настоящее время не поддерживаются.
  • Сертификаты: загрузка сертификатов с параметром приложения WEBSITE_LOAD_CERTIFICATES в настоящее время не поддерживается.
  • Ссылки на Key Vault. Ссылки на Key Vault в параметрах приложения не работают, если Key Vault ограничен доступом к сети, даже если приложение-функция имеет виртуальная сеть интеграцию. Текущее решение заключается в том, чтобы напрямую ссылаться на Key Vault в коде и читать необходимые секреты.
  • Файлы Azure подключение к общей папке: подключение общей папки Файлы Azure не работает при виртуальная сеть интеграции приложения-функции.

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