Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Flex Consumption — это план размещения функций Azure под управлением Linux, который основывается на использовании модели выставления счетов без сервера. Это обеспечивает большую гибкость и возможность настройки, вводя такие функции, как частная сеть, выбор размера памяти экземпляра, а также быстрое или масштабное развертывание, при этом продолжая использовать бессерверную модель. Flex Consumption — это рекомендуемый бессерверный план размещения функций Azure.
Вы можете просмотреть конечные примеры, демонстрирующие план потребления Flex в репозитории образцов плана потребления Flex.
Benefits
План потребления Flex основан на преимуществах бессерверного плана потребления, включая динамическое масштабирование и выставление счетов на основе выполнения. Используя Flex Consumption, вы также получите следующие дополнительные функции:
- Сокращение времени холодного запуска: включите всегда готовые экземпляры, чтобы добиться более быстрого холодного запуска по сравнению с тарифным планом Consumption.
- Поддержка виртуальной сети. Интеграция виртуальной сети позволяет бессерверному приложению выполняться в виртуальной сети.
- Масштабирование для каждой функции: каждая функция в приложении масштабируется независимо на основе рабочей нагрузки, что может привести к более эффективному выделению ресурсов.
- Улучшенная обработка параллелизма: улучшена обработка параллельных выполнений с настраиваемыми параметрами параллелизма для каждой функции.
- Гибкая конфигурация памяти: Flex Consumption предлагает несколько вариантов размеров экземпляров, что позволяет оптимизировать их в соответствии с вашими требованиями к нагрузке.
- Подключение хранилища Azure Files: Подключите диски Azure Files непосредственно к вашему функциональному приложению, чтобы код мог получить доступ к большим двоичным файлам, моделям машинного обучения и общим данным, без необходимости интегрировать их в пакет развертывания.
Эта таблица помогает вам напрямую сравнить особенности Flex Consumption с тарифным планом Consumption.
| Feature | Flex Consumption | Consumption |
|---|---|---|
| Сведение к нулю | ✅ Да | ✅ Да |
| Поведение масштабирования | Событийно-ориентированное (быстрое) | Событийно-ориентированный |
| Виртуальные сети | ✅ Поддержанный | ❌ Не поддерживается. |
| Выделенные вычислительные мощности (уменьшение холодных запусков) | ✅ Всегда готовые экземпляры (необязательно) | ❌ Никакой |
| Billing | Время выполнения и всегда готовые экземпляры | Только во время выполнения |
| Экземпляры горизонтального масштабирования (максимум) | 1 000 | 200 |
| Подключение файлового хранилища Azure | ✅ Поддержанный | ❌ Не поддерживается. |
| Поддержка Windows | ❌ Только Linux | ✅ Да |
Для полного сравнения плана Flex по потреблению с обычным планом потребления и всеми другими типами планов и размещения см. в разделе масштабирование и параметры размещения функций.
Подсказка
Если вы переносите приложения из плана потребления для Linux, ознакомьтесь с переносом приложений плана потребления в план Flex для получения пошаговых инструкций по миграции и важным различиям между планами.
Интеграция виртуальной сети
Использование Flex расширяет традиционные преимущества плана потребления путем добавления поддержки интеграции виртуальной сети. Когда приложения выполняются в плане потребления Flex, они могут подключаться к другим службам Azure, защищенным внутри виртуальной сети. Вы по-прежнему используете преимущества биллинга в бессерверной архитектуре и масштабирования, в дополнение к преимуществам пропускной способности и масштабирования Плана потребления Flex. Дополнительные сведения см. в разделе "Включение интеграции виртуальной сети".
Размеры экземпляров
При создании приложения-функции в плане Flex Consumption можно выбрать размер памяти экземпляров, на которых запускается ваше приложение. См. Выставление счетов, чтобы узнать, как размеры памяти экземпляра влияют на затраты функционального приложения.
В настоящее время Flex Consumption предлагает следующие параметры размера экземпляра:
| Память экземпляра (МБ) | Ядра ЦП |
|---|---|
| 512 | 0.25 |
| 2048 | 1 |
| 4096 | 2 |
Замечание
Показаны значения ядер ЦП — это типичное распределение для инстанций с указанным размером памяти. Однако начальные экземпляры могут иметь немного другие распределения ядер для повышения производительности. Каждый экземпляр потребления Flex также включает дополнительные 272 МБ памяти, выделенной платформой в качестве буфера для системных и узловых процессов. Эта дополнительная память не влияет на выставление счетов. Вы платите за настроенный размер памяти экземпляра, показанный в предыдущей таблице.
При выборе размера памяти экземпляра, используемого с приложениями, следует учитывать следующие факторы:
- Используйте размер памяти экземпляра 2048 МБ по умолчанию для большинства сценариев. Используйте размеры памяти экземпляра 512 МБ и 4096 МБ для сценариев, которые лучше всего соответствуют требованиям к параллелизму или обработке данных приложения. Дополнительные сведения см. в разделе "Настройка памяти экземпляра".
- Размер памяти экземпляра можно изменить в любое время. Дополнительные сведения см. в разделе "Настройка памяти экземпляра".
- Ваш код функции и платформа хостинга Functions используют общие ресурсы экземпляра.
- Чем больше размер памяти экземпляра, тем больше каждый экземпляр может обрабатывать одновременные выполнения или более интенсивные рабочие нагрузки ЦП или памяти. Конкретные решения масштабирования зависят от рабочей нагрузки.
- Параллелизм триггеров HTTP по умолчанию определяется размером памяти экземпляра. Дополнительные сведения см. в разделе параллелизм триггера HTTP.
- Доступные ЦП и пропускная способность сети пропорциональны определенному размеру экземпляра.
Масштабирование для каждой функции
Параллелизм является ключевым фактором, определяющим, как происходит масштабирование приложений функций Flex Consumption. Чтобы повысить производительность приложений с различными типами триггеров, план потребления Flex предоставляет более детерминированный способ масштабирования приложения на основе каждой функции.
Это поведение пер-функционального масштабирования является частью хостинговой платформы, поэтому вам не нужно настраивать приложение или изменять код. Дополнительные сведения см. в статье о масштабировании на основе функций в контексте масштабирования событий.
При пофункциональном масштабировании платформа принимает решения для определенных триггеров функций на основе групповых агрегирований. В этой таблице показан определенный набор групп масштабирования функций:
| Группы масштаба | Триггеры в группе | Значение параметров |
|---|---|---|
| Триггеры HTTP |
Триггер HTTP Триггер SignalR |
http |
| Триггеры хранилища BLOB-объектов (Сетка событий) |
Триггер хранилища BLOB | blob |
| Durable Functions |
Триггер оркестрации Триггер действия Триггер сущности |
durable |
Платформа масштабирует все другие функции в приложении по отдельности в собственном наборе экземпляров. Платформа ссылается на эти экземпляры с помощью соглашения function:<NAMED_FUNCTION>.
Всегда готовые экземпляры
Flex Consumption включает всегда готовую функцию, которую можно использовать для выбора экземпляров, которые постоянно выполняются и назначаются к каждой из ваших групп масштабирования на каждую функцию или функций. Всегда готов — отличный вариант для сценариев, в которых требуется минимальное количество экземпляров, всегда готовых к обработке запросов. Например, это снижает задержку холодного запуска приложения. Значение по умолчанию — 0 (ноль).
Например, если вы установите значение "всегда готов" равным 2 для вашей группы функций HTTP, платформа будет постоянно поддерживать два экземпляра этих функций в рабочем состоянии. Эти экземпляры сначала обрабатывают выполнение ваших функций. В зависимости от параметров параллелизма платформа масштабируется за пределами этих двух экземпляров с помощью экземпляров по запросу.
Вы можете настроить не менее двух всегда готовых экземпляров для каждой функции или группы функций, пока включена избыточность зоны.
Как настроить всегда готовые экземпляры, см. в разделе Set always ready instance counts.
Concurrency
Конкурентность относится к количеству параллельных выполнений функции на экземпляре вашего приложения. Можно задать максимальное количество одновременных выполнений, которые каждый экземпляр обрабатывает в любое время. Конкурентность напрямую влияет на масштабируемость приложения. На более низких уровнях параллелизма требуется больше экземпляров для обработки требований на основе событий для функции. Хотя вы можете контролировать и точно настраивать параллелизм, платформа предоставляет значения по умолчанию, которые работают в большинстве случаев.
Сведения о том, как задать ограничения параллелизма для функций триггера HTTP, см. в разделе "Настройка ограничений параллелизма HTTP". Сведения о настройке ограничений параллелизма для функций триггеров, отличных от HTTP, см. в статье " Масштабирование целевой базы".
Подключить общие папки
Flex Consumption позволяет монтировать общие ресурсы Azure Files как локальные директории в функциональном приложении. Подключение полезно при необходимости:
- Держите большие двоичные файлы вне развертывания: монтируйте исполняемые файлы, такие как ffmpeg, вместо их упаковки, так вы сохраняете небольшое развертывание и быстрый холодный запуск.
- Совместное использование ссылочных данных между экземплярами: все экземпляры считывают модели машинного обучения, таблицы подстановки или данные из одной общей папки без скачивания по запросу.
- Совместное использование файлов между приложениями: приложение-производитель записывает данные, а приложение-потребитель читает из той же точки монтирования.
Поддерживаются только общие ресурсы блока сообщений сервера (SMB), NFS недоступен. Крепления проходят проверку подлинности с помощью ключа доступа к учетной записи хранения. Дополнительные сведения см. в разделе "Выбор стратегии доступа к файлам".
Сведения о настройке подключений к хранилищу см. в разделе "Подключение общих папок".
Deployment
Развертывания в плане Flex Consumption следуют одному маршруту. Больше нет необходимости, чтобы параметры приложения влияли на поведение развертывания. Вы собираете и архивируете код проекта в пакет приложения, после чего развертываете его в контейнере хранилища объектов BLOB. При запуске приложение получает пакет и запускает код функции из этого пакета. По умолчанию та же учетная запись хранения, используемая для хранения метаданных внутреннего узла (AzureWebJobsStorage), также служит контейнером развертывания. Однако можно использовать альтернативную учетную запись хранения или выбрать предпочтительный метод проверки подлинности, настроив параметры развертывания приложения.
Подсказка
Портал Azure предоставляет диагностическое средство для развертывания Flex Consumption. Откройте приложение Flex Consumption, выберите "Диагностика и решение проблем" и выполните поиск Flex Consumption Deployment. В этом средстве отображаются подробные сведения о развертываниях, включая журнал развертывания, состояние пакета и рекомендации по устранению неполадок.
Развертывания без простоя
Замечание
Развертывания без простоя с использованием последовательного обновления в настоящее время находятся в общедоступной предварительной версии.
Использование Flex обеспечивает развертывание без простоя с помощью последовательного обновления в качестве стратегии обновления сайта. Эта стратегия позволяет постепенно применять развертывания кода и изменения конфигурации между экземплярами без прерывания выполнения функции. Другие планы размещения используют слоты развертывания для минимизации простоя во время развертывания. Варианты развертывания во всех планах размещения см. в разделе "Оптимизация развертываний".
Billing
Существует два режима, с помощью которых затраты определяются при запуске приложений в плане потребления Flex. Режим определяется для каждого экземпляра отдельно.
| Режим выставления счетов | Description |
|---|---|
| По запросу | При выполнении в режиме по запросу плата взимается только за время выполнения кода функции на доступных экземплярах. В режиме спроса не требуется минимальное количество экземпляров. Счета выставляются за: • Общий объем памяти, выделенной по мере того как каждый экземпляр по запросу активно выполняет функции (в ГБ-секундах), минус бесплатный грант ГБ-секунд в месяц. • Общее количество выполнений, минус бесплатное предоставление (число) выполнений в месяц. |
| Всегда готов | Можно настроить один или несколько экземпляров, назначенных определенным типам триггеров (HTTP/Durable/Blob) и отдельным функциям, которые всегда доступны для обработки запросов. Когда у вас включены любые постоянно готовые экземпляры, вам выставляются счета за: • Общий объем памяти, подготовленной во всех всегда готовых экземплярах, называемый базовым уровнем (в ГБ-секундах). • Общий объем памяти, предоставленной в течение времени, когда каждый всегда готовый экземпляр активно выполняет функции (в ГБ-секундах). • Общее количество казней. В системе немедленной выставки счетов нет бесплатных грантов. |
Актуальные сведения о ценах на выполнение, фиксированные базовые затраты и бесплатные квоты на выполнение по запросу, см. на странице цен на Функции Azure.
Минимальный оплачиваемый период выполнения для обоих режимов выполнения составляет 1000 мс. После этого начисление платы округляется до ближайших 100 мс. Подробные сведения о счетчиках выставления счетов по плану потребления Flex см. в справочнике по мониторингу.
Дополнительные сведения о том, как вычисляются затраты при использовании плана Flex Consumption, включая примеры, см. в разделах "Затраты на основе потребления" и "Просмотр данных, связанных с затратами".
Поддерживаемые версии стека языков
В этой таблице показаны версии стека языков, поддерживаемые в настоящее время для приложений Flex Consumption:
| Стек языков | Требуемая версия |
|---|---|
| C# (изолированная рабочая модель)1 | .NET 8, .NET 9, .NET 10 |
| Java | Java 11, Java 17, Java 21 |
| Node.js | Node.js 20, Node.js 22 |
| PowerShell | PowerShell 7.4 |
| Python | Python 3.10, Python 3.11, Python 3.12 |
- Модель внутрипроцессной обработки C# не поддерживается. Необходимо перенести проект .NET в изолированную рабочую модель.
Квоты памяти региональной подписки
Все приложения Flex Consumption в подписке и регионе совместно используют квоту вычислений, например общий контейнер ресурсов. Эта квота применяется только к приложениям Flex Consumption. Другие планы размещения (Consumption, Premium и Dedicated) не входят в этот расчёт. Квота ограничивает общее количество вычислений приложений Flex Consumption одновременно. Если ваши приложения пытаются превысить квоту, некоторые выполнения и развертывания могут быть отложены или завершиться с ошибкой, а масштабирование ограничивается. Однако вы по-прежнему можете создавать новые приложения.
Квота по умолчанию
Каждый регион в подписке имеет квоту по умолчанию 250 ядер (эквивалентно 512 000 МБ) для всех экземпляров приложений Flex Consumption в сочетании. Вы можете использовать любое сочетание размеров и количества экземпляров, если общее число ядер не превышает квоту.
Чтобы рассчитать количество используемых ядер, умножьте количество ядер на каждую единицу на общее число экземпляров.
| Размер экземпляра | Ядра на экземпляр | Formula |
|---|---|---|
| 512 МБ | 0.25 | экземпляры × 0.25 |
| 2 048 МБ | 1 | экземпляры × 1 |
| 4 096 МБ | 2 | экземпляры × 2 |
Примеры квот
Каждый из этих сценариев достигает 250 основных квот. По достижении квоты приложения в регионе перестают масштабироваться:
| Scenario | Расчет | Общее число ядер |
|---|---|---|
| Одно приложение размером 512 МБ на 1000 экземпляров | 1000 × 0,25 | 250 |
| Два приложения размером 512 МБ в 250 и 750 экземплярах | (250 + 750) × 0,25 | 250 |
| Одно приложение размером 2 048 МБ в 250 экземплярах | 250 × 1 | 250 |
| Два приложения по 2 048 МБ, по 100 и 150 экземпляров | (100 + 150) × 1 | 250 |
| Одно приложение объёмом 4 096 МБ, запущенное в 125 экземплярах. | 125 × 2 | 250 |
| Одно приложение с 4096 МБ на 100 экземпляров + одно приложение с 2048 МБ на 50 экземпляров | (100 × 2) + (50 × 1) | 250 |
Важные примечания
- Гибкое потребление быстро масштабируется на основе настроек сопроцессорности, поэтому приложения часто получают и освобождают ядра в пределах квоты по мере изменения спроса.
- Приложения Flex Consumption, масштабируемые до нуля, или экземпляры, помеченные для масштабирования и удаления, не учитываются в квоте.
- Экземпляры, которые всегда готовы, учитываются в квоте.
- Портал Azure предоставляет инструмент квоты потребления Flex. Откройте любое приложение Flex Consumption в подписке, выберите "Диагностика и решение проблем", найдите
Flex Consumption Quotaи выберите регион. В этом инструменте отображаются рекомендации, текущие сведения о квотах и исторические данные об использовании. - Вы можете увеличить эту квоту, ожидая проверки емкости, например с 250 ядер до 1000 ядер или более. Чтобы запросить большую квоту, создайте запрос в службу поддержки или обратитесь в службу поддержки Майкрософт.
Устаревшие свойства и параметры
В плане потребления Flex многие стандартные параметры приложения и свойства конфигурации сайта устарели или перемещены. Не используйте эти параметры при автоматизации создания ресурсов приложения-функции. Дополнительные сведения см. в разделе о прекращении использования плана потребления Flex.
Considerations
При использовании плана потребления Flex следует учитывать следующие рекомендации.
- Приложения для каждого плана: вы можете иметь только одно приложение на план потребления Flex.
-
Хост: время ожидания инициализации приложения истекает через 30 секунд. Когда функциональное приложение запускается дольше 30 секунд, возможно, вы увидите
System.TimeoutExceptionзаписи логи, связанные с gRPC. Сейчас вы не можете настроить это время ожидания. Дополнительные сведения см. в этом рабочем элементе хоста. - Durable Functions: Azure Storage и Durable Task Scheduler являются единственными поддерживаемыми поставщиками хранилища для Durable Functions при размещении в плане Flex Consumption. Ознакомьтесь с рекомендациями по размещению Durable Functions в тарифном плане Flex Consumption.
-
Интеграция виртуальной сети и регистрация поставщика ресурсов. Необходимо,
Microsoft.Appчтобы поставщик ресурсов Azure зарегистрирован в подписке для интеграции с виртуальной сетью, которая необходима для делегирования подсети. Портал Azure и Azure CLI применяют регистрацию во время создания приложения, так как вы можете включить интеграцию виртуальной сети в любой момент после создания приложения. Чтобы зарегистрировать этот поставщик, следуйте этим инструкциям. Делегирование подсети, необходимое для приложений Flex Consumption, — этоMicrosoft.App/environments. -
Триггеры: Хотя все триггеры полностью поддерживаются в тарифном плане потребления Flex, триггер хранилища BLOB-объектов поддерживает только источник Event Grid. Приложения-функции, отличные от C#, должны использовать версию
[4.0.0, 5.0.0)пакета расширений или более позднюю версию. - Регионы: хотя план потребления Flex доступен во многих регионах Azure, в настоящее время он не поддерживает все регионы. Дополнительные сведения см. в разделе "Просмотр поддерживаемых в настоящее время регионов".
- Развертывания. Слоты развертывания в настоящее время не поддерживаются. Для развертываний с нулевым временем простоя с использованием Flex Consumption см. стратегии обновления сайта в Flex Consumption.
- Служба хранилища Azure в качестве локального общего ресурса: общие ресурсы сетевой файловой системы (NFS) недоступны для Flex Consumption. Поддерживаются только Серверный блок сообщений (SMB) и BLOB-объекты Azure (только для чтения). Дополнительную информацию см. в разделе Подключение общих папок.
-
Масштабирование: самый низкий максимальный масштаб в настоящее время
1. Самое высокое поддерживаемое в настоящее время значение1000. - Управляемые зависимости PowerShell: Flex Consumption не поддерживает управляемые зависимости в PowerShell. Вместо этого необходимо отправить модули с содержимым приложения.
-
Сертификаты: загрузка сертификатов с помощью
WEBSITE_LOAD_CERTIFICATESпараметра приложения, управляемых сертификатов, сертификатов службы приложений и других функций на основе сертификатов платформы, таких какendToEndEncryptionEnabledсейчас не поддерживаются. -
Часовые пояса:
WEBSITE_TIME_ZONEиTZпараметры приложения в настоящее время не поддерживаются при выполнении плана потребления Flex. - Версия и прокси-серверы среды выполнения Функций Azure: Flex Consumption поддерживает только версию 4.x и более поздние среды выполнения Функций Azure. Прокси для Azure Functions были функцией в версиях от 1.x до 3.x среды выполнения Azure Functions и недоступны в Flex Consumption.
- Миграция планов: миграция существующего функционального приложения из другого плана размещения на план гибкого потребления Flex не поддерживается. Вы также не можете перенести приложение из Flex Consumption в другой план. Чтобы перейти на Flex Consumption, сначала необходимо создать новое функциональное приложение в плане Flex Consumption и повторно развернуть код.
Связанные статьи
Параметры размещения Функций Azure: создание приложений-функций и управление ими в плане потребления Flex