Überblick über Azure Container Apps Sandboxes

Azure Container Apps Sandboxes bieten schnelle, sichere, kurzlebige Rechenumgebungen mit integrierten Funktionen zum Anhalten und Fortsetzen. Sandboxes sind in Container Apps neben Apps, Aufträgen und dynamischen Sitzungen ein Ressourcentyp erster Klasse (Microsoft.App/SandboxGroups).

Important

Zum Verwalten und Erstellen von Sandboxes benötigen Sie die Azure Rolle Container Apps SandboxGroup Data Owner. Weisen Sie diese Rolle allen Benutzern zu, die Sandkasten erstellen und verwalten.

Erstellen und Verwalten von Sandkastenumgebungen

Sie können Sandkasten im Portal Sandboxes oder programmgesteuert mithilfe von Azure Container Apps CLI oder SDK erstellen und verwalten.

Wichtige Merkmale von Container-App-Sandboxen

  • Start in unter einer Sekunde: Sandboxes werden aus vorgewärmten Pools für eine nahezu sofortige Verfügbarkeit bereitgestellt.

  • Starke Isolation: Jede Sandbox wird in einer eigenen sicheren Grenze ausgeführt, sicher für die Ausführung nicht vertrauenswürdiger Code.

  • Skalieren bis Null: Du zahlst keine CPU- oder Speichergebühren, wenn Sandboxes gestoppt werden.

  • Horizontale Skalierung: Der Dienst skaliert bei Bedarf auf Tausende gleichzeitige Sandboxes.

  • OCI-Container-Image-Unterstützung: Verwenden Sie das beigefügte öffentliche Image oder bringen Sie eigene Container-Images als Sandbox-Root-Dateisysteme.

  • Suspend und Resume: Snapshot des gesamten Status, einschließlich Arbeitsspeicher und Datenträger, und spätere Wiederaufnahme mit Wiederherstellungszeiten von weniger als einer Sekunde.

  • Lebenszykluskontrolle: Sie können den gesamten Sandbox-Lebenszyklus verwalten, einschließlich Zustands-Snapshots, persistenter Speicherung und Netzwerkrichtlinien (sowohl Ausgangs- als auch Eintritt).

Wann Sandkästen verwendet werden sollten

Verwenden Sie Sandboxen, wenn Sie isolierte Rechenumgebungen mit expliziter Lebenszykluskontrolle, persistentem Zustand oder programmierbarem Zugriff über SDKs benötigen.

Szenario Verwenden Sie Sandkasten? Warum?
AI-Codeausführung mit Zustandserhaltung Ja Suspend zwischen Aufgaben, Resume mit intaktem Kontext
Entwicklungsumgebungen Ja On-demand aussetzbare Umgebungen, die den Status über Sitzungen hinweg beibehalten
Agenten-Workflows Ja Geben Sie KI-Agenten persistente, isolierte Arbeitsbereiche über Aufgabengrenzen hinweg
Interaktive Benutzersitzungen Ja Jeder Benutzer erhält eine eigene isolierte Computeumgebung.
Sicherer Multitenant-Compute Ja Starke Isolierung zum Ausführen nicht vertrauenswürdiger Workloads von mehreren Mandanten
Burst-Workloads Ja Skaliere von null bis zu tausend Sandkästen auf Abruf
CI/CD-Pipelines Ja Temporäre Build- und Testumgebungen, die bei Inaktivität auf null herunterskalieren

Wählen Sie die richtige Computingoption für Container Apps aus

Verwenden Sie die folgende Tabelle, um den Compute-Typ für Container Apps auszuwählen, der zu Ihrer Arbeitslast passt.

Computetyp Am besten geeignet für: Lifecycle State
Apps Dienste mit langer Laufzeit, APIs, Web-Apps Kontinuierlich Zustandslos (externer Zustandsspeicher)
Arbeitsplätze Ausführen von Aufgaben bis zum Abschluss, Batch-Verarbeitung Starten → Ausführen → abgeschlossen Zustandslos
Dynamische Sitzungen Ausführung verwalteter Code, LLM-generierte Skripts Vom Sitzungspool verwaltet Kurzlebig
Sandkästen Programmierbare isolierte Rechenleistung mit Lebenszyklussteuerung Sie verwalten: Erstellen, Anhalten, Fortsetzen, Löschen Statusbasiert (Snapshots, Volumes)

Wichtige Begriffe

Voraussetzungen

Zum Erstellen oder Verwalten von Sandboxes benötigen Sie die Azure Rollenzuweisung Container Apps SandboxGroup Data Owner. Ohne diese Rolle können Sie keine Sandbox-Vorgänge ausführen. Weisen Sie diese Rolle im gewünschten Bereich (Azure Abonnement oder Azure Ressourcengruppe) im Azure Portal oder mithilfe der Azure CLI zu.

Ersetzen Sie vor dem Ausführen des folgenden Befehls die Platzhalter, die von <> Ihren eigenen Werten umgeben sind.

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

Sandkastengruppen

Eine Sandbox-Gruppe ist die oberste Verwaltungsebene für Sandboxes. Es handelt sich um eine Azure Resource Manager (ARM)-Ressource, die Sie in einer Ressourcengruppe und -region erstellen. Alle Sandboxen, Datenträger-Images, Snapshots, Volumes und Secrets sind auf eine Sandbox-Gruppe beschränkt.

Verwenden Sie Sandkastengruppen, um Sandkasten nach Anwendung, Team oder Umgebung zu organisieren.

Sandkästen

Eine Sandbox ist eine einzelne isolierte Computeinstanz innerhalb einer Sandkastengruppe. Jede Sandbox wird von einem Image oder einem Snapshot ausgeführt und hat ihre eigene CPU-, Speicher-, Arbeitsspeicher- und Netzwerkbegrenzung.

Sie interagieren mit Sandboxes, indem Sie Befehle ausführen, Dateien verwalten, Ports freigeben und den Lebenszyklusstatus steuern.

Datenträgerabbilder

Festplatten-Images sind OCI-Container-Images, die zur Verwendung als Sandbox-Root-Dateisysteme konvertiert wurden. Sie können öffentliche Images verwenden oder private Images aus Ihren eigenen Containerregistrierungen erstellen.

Sie können Datenträgerabbilder aus Folgendem erstellen:

  • Öffentliche Bilder: Vorgefertigte Bilder, die für alle Sandkastengruppen verfügbar sind.
  • Container-Registry-Images: Aus öffentlichen oder privaten Container-Registries mit optionaler Authentifizierung abrufen.

Snapshots

Momentaufnahmen erfassen den vollständigen Zustand einer laufenden Sandbox, einschließlich Arbeitsspeicher und Festplatte. Verwenden Sie Momentaufnahmen für Folgendes:

  • Suspend und Resume: Pausieren einer Sandbox und spätere Wiederherstellung mit allen Prozessen und Daten.
  • Umgebungen klonen: Erstellen einer neuen Sandbox ausgehend von einem bekannt einwandfreien Status.
  • Freigeben von Basiswerten: Verteilen vorkonfigurierte Umgebungen in Ihrem Team.

Volumina

Microsoft verwaltet Volumes und bietet beständigen Speicher, den Sie in Sandkasten bereitstellen können. Es stehen zwei Volumetypen zur Verfügung:

Volumetyp Description
Azure Blob Daten zwischen mehreren Sandboxes teilen (Uploads und Downloads, persistente Artefakte). Kann gleichzeitig in mehrere Sandboxes eingebunden werden.
Datenträger Hochleistungs-Volumes für Datenbanken, Build-Caches und große Arbeits-Sets. Kann nur an eine Sandbox gleichzeitig angehängt werden.

Lebenszyklusstatus

Sandboxen durchlaufen die folgenden Status:

State Description
Laufen Aktive Ausführung, Nutzung von CPU und Speicher
Angehalten Von Benutzer, API oder Lebenszyklusrichtlinie gestoppt

Wenn die Sandbox gestoppt wird, wird dabei gemäß dem Suspend-Modus ein Snapshot erstellt und beibehalten (siehe den folgenden Abschnitt).

Sie können Lebenszyklusrichtlinien für jede Sandbox konfigurieren:

  • Automatisches Aussetzen: Setzt eine inaktive Sandbox nach einer konfigurierbaren Zeitspanne aus. Eine Sandbox wird inaktiv, wenn sie keinen eingehenden (eingehenden) Datenverkehr, keine Codeausführung (über Execute-API), keine interaktiven Shell-Sitzungen und keine Dateioperationen hat.
  • Suspend-Modus: Wählen Sie zwischen Speichermodus (vollständiger Snapshot – Festplatte + Speicher) oder Festplattenmodus (nur Festplatte erhalten).
  • Auto-Löschen: Sandboxen automatisch nach einer bestimmten Anzahl von Tagen nach dem Stopp der Sandbox löschen.

Aufbau

Sandkasten verwenden eine Zwei-Ebenen-Architektur:

Flugzeug Endpunkt Operations
ARM-Steuerungsebene management.azure.com Sandbox-Gruppen erstellen, aktualisieren, löschen und auflisten. Verwalten von VNet-Verbindungen.
Datenebene management.azuredevcompute.io Verwalten von Sandboxen, Datenträger-Images, Snapshots, Dateien, Volumes, Secrets, Ports und Egress-Richtlinien.

Sie erstellen und verwalten Sandkastengruppen über die ARM-Steuerungsebene. Alle Operationen an einzelnen Sandboxen und deren Ressourcen laufen über die ACA-Sandbox-Datenebene, die auf eine bestimmte Sandbox-Gruppe abgegrenzt ist.

Ressourcenebenen

Jedem Sandkasten wird eine Ressourcenebene zugewiesen, die die CPU-, Arbeitsspeicher- und Datenträgerzuweisung überprüft.

Tarif CPU Gedächtnis Datenträger
XS 0,25 Kerne 0,5 GB 20 GB
S 0,5 Kerne 1 GB 20 GB
M (Standard) 1 Kern 2 GB 20 GB
L 2 Kerne 4GB 40 GB
XL 4 Kerne 8 GB 80 GB

Überlegungen

Berücksichtigen Sie diese Punkte beim Arbeiten mit Sandkasten:

  • Entra ID erforderlich: Nur Microsoft Entra ID Konten können auf Sandkasten zugreifen. Persönliche Microsoft-Konten werden nicht unterstützt.
  • Netzwerksteuerungen: Sie können Ausgangsrichtlinien konfigurieren, um ausgehenden Verkehr aus Sandboxen zu steuern, einschließlich domänenbasierter Erlaubt-oder-Ablehnungsregeln, CIDR-basierten Netzwerkregeln und VNet-Integration.

Sandkasten im Vergleich zu dynamischen Sitzungen

Sandkasten und dynamische Sitzungen bieten beide isolierte Computeumgebungen in Container-Apps, aber sie erfüllen unterschiedliche Anforderungen.

Dynamische Sitzungen Sandkästen
Zugriffsmuster HTTP-Anforderungsrouting über einen Sitzungspoolverwaltungsendpunkt Direkte SDK- und CLI-Steuerung über einzelne Sandboxen
State Vergänglich, wird nach der Abklingzeit zerstört Statusbasiert mit Suspend, Resume und Snapshots
Entwicklerkontrolle Pool verwaltet die Zuweisung und den Lebenszyklus Sie verwalten den Sandkastenlebenszyklus, Dateien, Ports und Richtlinien.
Bildmodell Codedolmetscher (integriert) oder benutzerdefinierter Container Datenträger-Images (OCI), Snapshots, Inhaltspakete
Beständiger Speicher Nicht verfügbar Volumes (Azure Blob, Datenfestplatte)
Vernetzung Einfache Isolation Egressrichtlinien, VNet-Integration, Portverwaltung
SDKs REST-API über Poolendpunkt Python SDK (azure-containerapps-sandbox) und REST API

Wählen Sie dynamische Sitzungen aus, wenn Sie eine verwaltete Ausführungserfahrung benötigen, die die Infrastruktur abstrahiert. Wählen Sie Sandboxes, wenn Sie programmierbare Steuerung über isolierte Rechenumgebungen mit persistenter Speicherung des Zustands benötigen.