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


Динамические сеансы в приложениях контейнеров Azure

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

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

С помощью сеансов вы получаете следующие сведения:

  • Строгой изоляции: сеансы изолированы друг от друга и от среды узла. Каждый сеанс выполняется в собственной песочнице Hyper-V, обеспечивая безопасность и изоляцию корпоративного уровня. При необходимости можно включить сетевую изоляцию для дальнейшего повышения безопасности.

  • Простой доступ. Доступ к сеансам можно получить через REST API. Уникальный идентификатор помечает каждый сеанс. Если сеанс с заданным идентификатором не существует, новый сеанс автоматически выделяется.

  • Полностью управляемый: приложения-контейнеры полностью управляют жизненным циклом сеанса. Сеансы автоматически очищаются, когда больше не используется.

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

  • Масштабируемый: сеансы могут выполняться в большом масштабе. Одновременно можно выполнять сотни или тысячи сеансов.

  • Доступ к API: сеансы предоставляются приложению через одну конечную точку HTTP.

Сессия

Сеанс — это песочница или изолированная среда, в которой выполняется ненадежный код или ваше приложение.

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

Существует два разных типа сеансов.

Типы докладов

Приложения контейнеров Azure поддерживают два типа сеансов:

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

Идеально подходит для запуска ненадежного кода, например кода, предоставленного пользователями приложения или кода, созданного большой языковой моделью (LLM).

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

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

Каждый сеанс, независимо от типа, выполняется в контексте пула сеансов.

Пулы сеансов

Для обеспечения времени выделения сеансов с длительностью менее секунды, Azure Container Apps поддерживает пул сеансов, которые готовы, но ещё не распределены. Когда приложение отправляет запрос на сеанс, который раньше не использовался, пул автоматически назначает новый сеанс. При выделении сеансов пул автоматически обновляется для поддержания постоянного количества готовых сеансов.

Каждый пул сеансов доступен приложению с помощью уникального расположения конечной точки управления пулом.

Жизненный цикл сеанса

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

Следующие состояния определяют этот жизненный цикл:

  1. Ожидание: когда сеанс запускается, он находится в состоянии ожидания. Количество времени, которое сеанс проводит в этом состоянии, зависит от образа контейнера и настроек, указанных для пула сеансов. Сеанс в этом состоянии не добавляется в пул готовых сеансов.

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

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

  4. Уничтожено: если сеанс не получает запросы в течение длительности, определенной cooldownPeriodInSeconds параметром, сеанс и его Hyper-V песочница безопасно удаляются. Эта автоматическая настройка очистки улучшает управление ресурсами и безопасность.

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

Доступность по регионам

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

Область/регион Интерпретатор кода Пользовательский контейнер
Восточная Австралия
Australia Southeast
Бразилия (Юг)
Canada Central
Восточная Канада
Центральная Индия
Central US
Восточная Азия
Восточная часть США
Восток США 2
Центральная Франция
Центрально-Западная Германия
Северная Италия
Восточная Япония
Западная Япония
Центральная Корея
Центрально-северная часть США
Северная Европа
Восточная Норвегия
Центральная Польша
Север Южной Африки
Южная Индия
Юго-Восточная Азия
Центральная Швеция
Северная Швейцария
Switzerland West
Северная часть ОАЭ;
Юг Соединённого Королевства
UK West
Центрально-западная часть США
Западная Европа
Западная часть США
западная часть США 2
Западная часть США 3

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

Плата за пользовательские сеансы в контейнерах выставляется на основе ресурсов, используемых пулом сеансов. Дополнительные сведения см. в статье "Выставление счетов за приложения контейнеров Azure".

Безопасность

Используйте следующие методы, чтобы повысить безопасность динамических сеансов.

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

  • Используйте ПРОТОКОЛ HTTPS: всегда используйте ПРОТОКОЛ HTTPS для шифрования данных при передаче. Это защищает идентификаторы сеансов и любые конфиденциальные данные, обмениваемые между клиентом и сервером, от перехвата.

  • Ограничение времени существования сеанса: реализация времени ожидания для сеансов. Например, разрешите неактивность не более 15 минут до автоматического завершения сеанса. Это помогает снизить риски из-за потери или оставленного без присмотра устройства.

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