Обзор песочниц Контейнеры приложений Azure

Контейнеры приложений Azure песочницы обеспечивают быстрые, безопасные, временные вычислительные среды со встроенными возможностями приостановки и возобновления работы. Песочницы — это полноправный тип ресурса (Microsoft.App/SandboxGroups) в Container Apps наряду с приложениями, заданиями и динамическими сеансами.

Important

Чтобы управлять песочницами и создавать их, вам потребуется роль Azure Container Apps SandboxGroup Data Owner. Назначьте эту роль всем пользователям, которые создают песочницы и управляют ими.

Создание сред песочницы и управление ими

Песочницы можно создавать и управлять ими на портале Sandboxes portal или программно с помощью Контейнеры приложений Azure CLI или SDK.

Основные характеристики песочниц Container Apps

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

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

  • Масштабирование до нуля: Вы не платите за ресурсы ЦП и память, когда песочницы остановлены.

  • Горизонтальное масштабирование: сервис может по требованию масштабироваться до тысяч параллельных песочниц.

  • Поддержка OCI-образов контейнеров: используйте включённый публичный образ или используйте свои собственные образы контейнеров в качестве корневых файловых систем песочницы.

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

  • Управление жизненным циклом: вы можете управлять полным жизненным циклом песочницы, включая снимки состояния, постоянное хранение и сетевые политики (как выход, так и вход).

Когда следует использовать песочницы

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

Scenario Используйте песочницы? Почему
Выполнение кода ИИ с сохранением состояния Да Приостанавливайте работу между задачами и возобновляйте её с полностью сохранённым контекстом
Среды разработки Да Среды с возможностью приостановки по запросу, сохраняющие состояние между сеансами
Рабочие процессы агента Да Предоставление агентам ИИ постоянных изолированных рабочих областей по границам задач
Интерактивные сеансы пользователей Да Каждый пользователь получает собственную изолированную вычислительную среду
Безопасные мультитенантные вычисления Да Строгая изоляция для выполнения недоверенных нагрузок от нескольких арендаторов
Пиковые рабочие нагрузки Да Масштабируйте с нуля до тысяч песочниц по запросу
Конвейеры CI/CD Да Временные среды сборки и тестирования, масштабируемые до нуля при простое

Выбор подходящего параметра вычислений для приложений-контейнеров

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

Тип вычислений лучше всего подходит для Lifecycle Государство
Приложения Долго работающие службы, API, веб-приложения Непрерывный Без отслеживания состояния (внешние хранилища состояний)
Работы Задачи выполнения до завершения, пакетная обработка Запустить → выполнить → завершить Стейтлесс
Динамические сеансы Выполнение управляемого кода, скрипты, созданные LLM Управляется пулом сеансов Эфемерный
Песочницы Программируемые изолированные вычисления с помощью управления жизненным циклом Вы можете управлять: создавать, приостанавливать, возобновлять, удалять Отслеживание состояния (моментальные снимки, тома)

Основные понятия

Необходимые условия

Чтобы создавать песочницы или управлять ими, вам требуется назначение роли Azure Container Apps SandboxGroup Data Owner. Без этой роли нельзя выполнять операции в песочнице. Назначьте эту роль в нужной области (подписке Azure или группе ресурсов Azure) в портале Azure или с помощью Azure CLI.

Перед выполнением следующей команды замените заполнители, заключённые в теги <>, своими значениями.

az role assignment create \
  --assignee "<USER_EMAIL_OR_OBJECT_ID>" \
  --role "Container Apps SandboxGroup Data Owner" \
  --scope "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>"

Группы песочницы

Группа песочницы — это граница управления верхнего уровня для песочниц. Это ресурс Azure Resource Manager (ARM), создаваемый в группе ресурсов и регионе. Все песочницы, образы дисков, моментальные снимки, тома и секреты привязаны к группе песочниц.

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

Песочницы

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

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

Образы дисков

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

Образы дисков можно создавать из:

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

Snapshots

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

  • Приостановка и возобновление: приостановьте песочницу и возобновите её позже с сохранением всех процессов и данных.
  • Клонируйте среды: создавайте новые песочницы из заведомо исправного состояния.
  • Общие базовые конфигурации: Распространяйте заранее настроенные среды в команде.

Volumes

Microsoft управляет томами и предоставляет постоянное хранилище данных, которое можно монтировать в песочницы. Доступны два типа томов:

Тип тома Description
Azure BLOB-объект Обменивайтесь данными между несколькими песочницами (выгрузки и загрузки, постоянно хранимые артефакты). Подключение к нескольким песочницам одновременно.
Диск данных Высокопроизводительный том для баз данных, кэшей сборок и больших рабочих наборов. Одновременно можно подключить только к одной песочнице.

Состояния жизненного цикла

Песочницы проходят через следующие состояния:

Государство Description
Бег Активное выполнение с использованием процессора и памяти
Остановился Остановлено пользователем, API или политикой жизненного цикла

При остановке песочницы операция создает и сохраняет снимок в соответствии с режимом Suspend Mode (см. следующий раздел).

Вы можете настроить политики жизненного цикла для каждой песочницы:

  • Автоматическая приостановка: Автоматически приостанавливает неактивную песочницу по истечении настраиваемого периода ожидания. Песочница становится неактивной, если в неё не поступает входящий трафик, не выполняется исполнение кода (через API execute), нет интерактивных сеансов оболочки и не выполняются файловые операции.
  • Режим приостановки: выберите между режимом памяти (полный снимок — диск + память) и режимом диска (сохранение только диска).
  • Автоудаление: Автоматическое удаление песочниц спустя определённое количество дней после остановки песочницы.

Architecture

Песочницы используют двухуровневую архитектуру:

самолёт Endpoint Operations
Плоскость управления ARM management.azure.com Создавайте, обновляйте, удаляйте и просматривайте список групп песочницы. Управление подключениями к виртуальной сети.
Плоскость данных management.azuredevcompute.io Управляйте песочницами, образами дисков, снимками, файлами, томами, секретами, портами и политиками исходящего трафика.

Вы создаете группы песочниц и управляете ими с помощью плоскости управления ARM. Все операции с отдельными песочницами и их ресурсами выполняются через плоскость данных ACA Sandboxes в пределах определённой группы песочниц.

Уровни ресурсов

Каждой песочнице назначается уровень ресурсов, который определяет объём выделенных ей ресурсов ЦП, памяти и диска.

Тир ЦП Memory Диск
XS 0.25 ядер 0.5 ГБ 20 ГБ
S 0,5 ядра 1 ГБ 20 ГБ
M (по умолчанию) 1 ядро 2 ГБ 20 ГБ
L 2 ядра 4 ГБ 40 ГБ
XL 4 ядра 8 ГБ 80 ГБ

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

При работе с песочницами следует учитывать следующие моменты:

  • Требуется Entra ID: доступ к песочницам возможен только для учётных записей Microsoft Entra ID. Личные учетные записи Майкрософт не поддерживаются.
  • Сетевые управления: Вы можете настроить политики выхода для управления исходящим трафиком из песочниц, включая правила разрешения или запрета на основе домена, сетевые правила на основе CIDR и интеграцию с VNet.

Песочницы в сравнении с динамическими сеансами

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

Динамические сеансы Песочницы
Шаблон доступа Маршрутизация HTTP-запросов через конечную точку управления пулом сеансов Прямое управление отдельными песочницами через SDK и CLI
State Эфемерный, разрушенный после прохлады Отслеживание состояния с приостановкой, возобновлением и моментальными снимками
Управление разработчика Пул управляет выделением и жизненным циклом Вы управляете жизненным циклом песочницы, файлами, портами и политиками
Модель изображения Интерпретатор кода (встроенный) или пользовательский контейнер Образы дисков (OCI), снимки, пакеты контента
Постоянное хранилище Недоступно Тома (Azure BLOB-объект, диск данных)
Сети Базовая изоляция Политики исходящего трафика, интеграция виртуальной сети, управление портами
Пакеты SDK REST API через эндпоинт пула Python SDK (azure-containerapps-sandbox) и REST API

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