Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функции 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. Он предлагает следующие ключевые преимущества:
- Запустите функции как контейнеры с пользовательскими зависимостями и стеками языков.
- Снижение масштаба до нуля и увеличение масштаба до 1000 экземпляров с помощью KEDA.
- Безопасная сеть с полной интеграцией виртуальной сети.
- Расширенные функции контейнерного приложения, такие как многоверсионность, разделение трафика, интеграция Dapr и компоненты обсервабельности.
- Поддержка бессерверных и выделенных GPU для рабочих нагрузок с интенсивным вычислением.
- Среда унифицированных контейнерных приложений для запуска функций вместе с микрослужбами, API и фоновыми заданиями.
В следующей таблице показано, как сравнить функции функций в контейнерных приложениях с планом потребления 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.