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


Общие сведения о Функциях Azure в приложениях контейнеров Azure

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

Развертывание контейнерных приложений позволяет запускать ваши функции в полностью поддерживаемой и управляемой контейнерной среде со встроенной поддержкой мониторинга с открытым исходным кодом, mTLS, Dapr и масштабированием на основе событий Kubernetes (KEDA).

В качестве интегрированной функции в приложениях контейнеров Azure можно развертывать образы функций Azure непосредственно в приложениях контейнеров Azure с помощью Microsoft.App поставщика ресурсов, установив параметр kind=functionapp при вызове az containerapp create. Приложения, созданные таким образом, имеют доступ ко всем функциям контейнеров Azure.

В этой статье показано, как создать и развернуть приложение Функций Azure, которое выполняется в приложениях контейнеров Azure. Вы узнаете, как:

  • Настройка приложения контейнерных функций с предварительно настроенными правилами автоматического масштабирования
  • Развертывание приложения с помощью портала Azure или Azure CLI
  • Проверка развернутых функций с помощью триггера HTTP

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

Ключевые преимущества

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

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

Функция Приложения в контейнерах План потребления Flex
Сведение к нулю ✅ Да (через KEDA) ✅ Да
Максимальное масштабирование 1000 (по умолчанию 10, настраиваемый) 1 000
Экземпляры Always-on (постоянно включенные) ✅ Да (через minReplicas) ✅ Да (с помощью всегда готовых экземпляров)
Интеграция с виртуальной сетью ✅ Да ✅ Да
Поддержка пользовательских контейнеров ✅ Да (принести собственный образ) ❌ Ограничено (не предусмотрена возможность использования собственного контейнера)
Поддержка GPU ✅ Да (с помощью безсерверного профиля выделенной рабочей нагрузки GPU) ❌ Нет
Встроенные функции Поддержка функций контейнерных приложений. Например, KEDA, Dapr, многоразовые ревизии, mTLS, боковые процессы, управление входом и многое другое Особенности только для функций
Модель выставления счетов Цены на контейнерные приложения: план потребления (vCPU, память, запросы) и выделенный план (на основе профиля рабочей нагрузки) Время выполнения и всегда готовые экземпляры

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

Сценарии

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

  • Бизнес-API: пакет пользовательских библиотек, пакетов и API с функциями для бизнес-приложений.

  • Поддержка миграции: миграция локальных устаревших и(или) монолитных приложений в облачные микрослужбы на контейнерах.

  • Архитектура на основе событий: поддерживает приложения на основе событий для рабочих нагрузок, уже работающих в приложениях контейнеров Azure.

  • Бессерверные рабочие нагрузки: бессерверная обработка видео, изображений, расшифровок или других интенсивных задач обработки, требующих вычислительных ресурсов GPU.

  • Распространенные сценарии функций Azure: все распространенные сценарии функций Azure, такие как обработка отправки файлов, выполнение запланированных задач, реагирование на изменения базы данных, машинное обучение и ИИ и другие подробные сведения в сценариях Функций Azure.

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

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

  • План потребления. Этот бессерверный вариант вычислений выставляет счета только за ресурсы, используемые в приложениях во время их работы.
  • Выделенный план. Этот параметр предоставляет настраиваемые вычислительные ресурсы, выставление счетов за экземпляры, выделенные для каждого профиля рабочей нагрузки.

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

Ключевые моменты, которые следует отметить:

  • За использование модели программирования Функций Azure в контейнерных приложениях дополнительные расходы не взимаются.
  • Устойчивые функции и другие расширенные шаблоны поддерживаются и выставляются в рамках той же модели ценообразования для контейнерных приложений. Подробные примеры и механики выставления счетов см. в документации по выставлению счетов в приложениях контейнеров Azure .

Масштабирование, управляемое событиями

Все триггеры функций доступны в контейнерном приложении "Функции". Однако только следующие триггеры могут динамически масштабироваться (от нуля экземпляров) на основе полученных событий при выполнении в среде приложений контейнеров:

  • Сетка событий Azure
  • Центры событий Azure
  • Хранилище BLOB-объектов Azure (на основе Event Grid)
  • Хранилище очередей Azure
  • Служебная шина Azure
  • Устойчивые функции (поставщик хранилища MSSQL)
  • Устойчивые функции (поставщик хранилища DTS)
  • HTTP
  • Кафка
  • Таймер
  • Azure Cosmos DB (облачная база данных)

Функции Azure в приложениях контейнеров Azure предназначены для настройки параметров и правил масштабирования в зависимости от целевого объекта события. Вам не нужно беспокоиться о настройке масштабируемых объектов KEDA. Вы по-прежнему можете задать минимальное и максимальное число реплик при создании или изменении приложения "Функции".

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

Авторизация управляемой идентификации

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

Управляемые удостоверения доступны для следующих подключений:

  • Учетная запись хранения по умолчанию (AzureWebJobsStorage)
  • Реестр контейнеров Azure: при запуске в приложениях контейнеров можно использовать идентификатор Microsoft Entra с управляемыми удостоверениями для всех расширений привязки, поддерживающих управляемые удостоверения. В настоящее время только эти расширения привязки (биндинга) поддерживают масштабирование, инициированное событиями, при использовании аутентификации с помощью управляемого удостоверения.
  • Центры событий Azure
  • Хранилище очередей Azure
  • Служебная шина Azure

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

Масштабирование и производительность

Функции Azure в контейнерных приложениях автоматически масштабируются на основе событий с помощью KEDA без необходимости настраивать правила масштабирования вручную. Вы все еще можете задать минимальное/максимальное число реплик для управления поведением масштабирования.

  • Масштабирование на основе событий: автоматически масштабируется на основе триггеров, таких как сетка событий, служебная шина или HTTP.
  • Масштабирование до нуля: неактивные приложения масштабируются до нуля, чтобы снизить затраты.
  • Управление холодным запуском: избегайте холодных запусков, задав minReplicas ≥ 1.
  • Параллелизм. Каждый экземпляр может обрабатывать несколько событий параллельно.
  • Высокий масштаб: горизонтальное масштабирование до 1000 экземпляров для каждого приложения (по умолчанию — 10).
  • Поддержка GPU: выполнение вычислительных рабочих нагрузок, таких как вывод искусственного интеллекта с помощью узлов с поддержкой GPU.

Это делает контейнерные приложения идеальными для рабочих нагрузок со скачкообразными и стационарными состояниями. Дополнительные сведения см. в статье "Настройка правил масштабирования в приложениях контейнеров Azure"

Сетевые подключения и безопасность

Функции Azure в контейнерных приложениях получают преимущества надежных сетевых и безопасных функций для безопасных масштабируемых развертываний:

  • Интеграция виртуальной сети: обеспечение безопасного доступа к частным ресурсам через внутренние конечные точки и частные базы данных.
  • Управляемое удостоверение: Аутентификация в службах Azure с использованием управляемых системой или назначаемых пользователем удостоверений — без необходимости в секретах или строках подключения.
  • Поддержка Dapr: включение вызова pub/sub, управления состоянием и безопасного вызова службы через боковики Dapr. Дополнительные сведения см. в разделе API микросервисов, работающих под управлением Dapr.
  • Ingress и TLS: обеспечение безопасного доступа к HTTP-эндпоинтам через TLS/mTLS, пользовательские домены или оставляя их внутренними.
  • Изоляция среды. Функции совместно используют границы контейнерных приложений для безопасного, ограниченного взаимодействия.

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

Ведение журнала приложения

Вы можете отслеживать приложение контейнерных функций, размещенное в контейнерных приложениях, с помощью Azure Monitor Application Insights таким же образом, как и приложения, размещенные в Функциях Azure. Дополнительные сведения см. в разделе Мониторинг функций Azure.

Для привязок, поддерживающих масштабирование на основе событий, масштабируемые события регистрируются как FunctionsScalerInfo и FunctionsScalerError события в рабочей области Log Analytics. Дополнительные сведения см. в разделе "Ведение журнала приложений" в приложениях контейнеров Azure.

Отправка отзывов

Отправьте запрос на проблему или функцию в репозиторий GitHub для приложений контейнеров Azure.

Дальнейшие шаги