Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Zusätzlich zum integrierten Codeinterpreter, den dynamische Azure Container Apps-Sitzungen bereitstellen, können Sie auch benutzerdefinierte Container verwenden, um Ihre eigenen Sitzungssandboxes zu definieren.
Hinweis
Dieser Artikel gilt nur für benutzerdefinierte Container-Sitzungspools. Sofern nicht angegeben, sind die hier beschriebenen Features für Codedolmetschersitzungspools nicht verfügbar.
Verwendungsmöglichkeiten für benutzerdefinierte Containersitzungen
Mit benutzerdefinierten Containern können Sie Lösungen erstellen, die speziell auf Ihre Anforderungen zugeschnitten sind. Sie ermöglichen es Ihnen, Code oder Anwendungen in Umgebungen auszuführen, die schnell und kurzlebig sind und sichere Sandkastenbereiche mit Hyper-V bieten. Darüber hinaus können sie mit optionaler Netzwerkisolation konfiguriert werden. Beispiele hierfür sind:
Codeinterpreter: Wenn Sie nicht vertrauenswürdigen Code in sicheren Sandboxes mit einer Sprache ausführen müssen, die im integrierten Interpreter nicht unterstützt wird, oder Sie die vollständige Kontrolle über die Codeinterpreterumgebung benötigen.
Isolierte Ausführung: Wenn Sie Anwendungen in feindlichen Szenarien mit mehreren Mandanten ausführen müssen, in denen jeder Mandant oder Benutzer über eine eigene Sandkastenumgebung verfügt. Diese Umgebungen sind voneinander und von der Hostanwendung isoliert. Beispiele sind u. a. Anwendungen, die vom Benutzer bereitgestellten Code ausführen, Code, der Endbenutzerzugriff auf eine cloudbasierte Shell gewährt, KI-Agents und Entwicklungsumgebungen.
Benutzerdefinierte Containersitzungen verwenden
Um benutzerdefinierte Containersitzungen zu verwenden, erstellen Sie zunächst einen Sitzungspool mit einem benutzerdefinierten Containerimage. Azure Container Apps startet Container in ihren eigenen Hyper-V-Sandboxen automatisch mithilfe der bereitgestellten Images. Sobald der Container gestartet wurde, ist er für den Sitzungspool verfügbar.
Wenn Ihre Anwendung eine Sitzung anfordert, wird sofort eine Instanz aus dem Pool zugeordnet. Die Sitzung bleibt aktiv, bis sie in einen Leerlaufzustand wechselt, wird dann automatisch beendet und zerstört.
Containertests für Sitzungspools
Verwenden Sie Containertests, um Integritätsprüfungen für benutzerdefinierte Containersitzungspools zu konfigurieren und Sitzungsinstanzen fehlerfrei zu halten.
Hinweis
Containersonden erfordern API-Version 2025-02-02-preview oder höher.
Mit Containersonden können Sie Integritätsprüfungen für Sitzungscontainer definieren, ähnlich wie Integritätstests in Azure Container-Apps. Bei der Konfiguration überwacht der Sitzungspool jede Sitzungsinstanz und entfernt fehlerhafte Instanzen.
Der Sitzungspool:
- Stellt sicher, dass verfügbare Sitzungsinstanzen fehlerfrei sind, basierend auf den Tests.
- Entfernt automatisch unerwünschte Sitzungsinstanzen.
- Skaliert nach oben, um die konfigurierte Zahl von
readySessionInstancesmit fehlerfreien Sitzungen zu wahren.
Sitzungspools unterstützen die Liveness- und Startup-Überprüfungstypen. Weitere Informationen zur Funktionsweise von Tests finden Sie unter Integritätstests in Azure Container Apps.
Konfiguration
Wenn Sie einen Sitzungspool erstellen oder aktualisieren, geben Sie Prüfpunkte im properties.customContainerTemplate.containers Abschnitt Ihrer Anforderungsnutzlast an.
Die vollständige API-Spezifikation finden Sie unter SessionPools-API.
Beispiel
{
"properties": {
"customContainerTemplate": {
"containers": [
{
"name": "my-session-container",
"image": "myregistry.azurecr.io/my-session-image:latest",
"probes": [
{
"type": "Liveness",
"httpGet": {
"path": "/health",
"port": 8080
},
"periodSeconds": 10,
"failureThreshold": 3
},
{
"type": "Startup",
"httpGet": {
"path": "/ready",
"port": 8080
},
"periodSeconds": 5,
"failureThreshold": 30
}
]
}
]
},
"dynamicPoolConfiguration": {
"readySessionInstances": 5
}
}
}
Problembehandlung
Wenn der Sitzungspool nicht die erwartete Anzahl fehlerfreier readySessionInstances beibehält, ziehen Sie Folgendes in Betracht:
- Überprüfen Sie Containerprotokolle – Überprüfen Sie Sitzungscontainerprotokolle, um Probleme mit Probeendpunkten oder containerstarts zu identifizieren. Siehe Anzeigen von Protokollen für benutzerdefinierte Containersitzungspools.
- Überprüfen Sie die Probekonfiguration – Stellen Sie sicher, dass Prüfpunktpfade, Ports und Schwellenwerte für Ihre Anwendung ordnungsgemäß konfiguriert sind.
- Überprüfen Sie den Containerstatus – Überprüfen Sie auf Probleme in Ihrem Container, die verhindern, dass Probeendpunkte erfolgreich reagieren.
Beenden einer Sitzung
Verwenden Sie die Stoppsitzungs-API, um eine Sitzung in einem benutzerdefinierten Containersitzungspool zu beenden.
Sitzungspools unterstützen die automatische Sitzungsverwaltung durch lifecycleConfiguration, die den Sitzungslebenszyklus basierend auf Ihrer Konfiguration verarbeitet. Es gibt jedoch Szenarien, in denen Sie möglicherweise mehr Kontrolle benötigen.
Nachdem Sie eine Sitzung zugewiesen haben, können Sie diese API aufrufen, um sie jederzeit manuell zu beenden. Diese Möglichkeit ist in folgenden Situationen nützlich:
- Sie müssen Ressourcen bereinigen, bevor eine Sitzung die Gültigkeitsdauer erreicht.
- Ihr Sitzungspool hat seinen maximalen Grenzwert für gleichzeitige Sitzungen erreicht, und Sie müssen kapazität für neue Sitzungen freigeben.
- Eine Sitzung hat ihre Arbeit abgeschlossen und Sie möchten Ressourcen sofort freigeben.
API-Referenz
Anforderung
POST {PoolManagementEndpoint}/.management/stopSession?api-version=2025-10-02-preview&identifier={SessionIdentifier}
Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
api-version |
Schnur | Ja | Die zu verwendende API-Version (z. B 2025-10-02-preview. ). |
identifier |
Schnur | Ja | Der eindeutige Bezeichner der Sitzung, die beendet werden soll. |
Beispiele
Anforderung
POST https://{PoolManagementEndpoint}/.management/stopSession?api-version=2025-10-02-preview&identifier=testSessionIdentifier
Antwort
HTTP/1.1 200 OK
Content-Type: text/plain
Session testSessionIdentifier in session pool testSessionPool stopped.
Protokollierung
Benutzerdefinierte Containersitzungspools können mit Azure Monitor und Log Analytics integriert werden. Anwendungsprotokolle werden nur erfasst, wenn Ihr Container die Ausgabe an stdout oder stderr schreibt. Stellen Sie daher sicher, dass Ihre App Protokolle in die Konsole schreibt.
Voraussetzungen
- Azure Container Apps-Umgebung mit benutzerdefiniertem Containersitzungspool
- Ein Log Analytics-Arbeitsbereich (oder ein Arbeitsbereich während der Einrichtung erstellen)
Konfigurieren der Protokollierung
Schritt 1: Azure Monitor-Protokollierung aktivieren
- Navigieren Sie im Azure-Portal zu Ihrer Container-Apps-Umgebung .
- Wählen Sie unter "Überwachung" die Option "Protokollierung" aus.
- Legen Sie das Protokollziel auf Azure Monitor fest.
Schritt 2: Konfigurieren von Diagnoseeinstellungen
- Navigieren Sie in Ihrer Container-Apps-Umgebung zu Diagnoseeinstellungen unter "Überwachung".
- Wählen Sie +Diagnoseeinstellung hinzufügen aus.
- Geben Sie einen Namen für Ihre Diagnoseeinstellung an.
- Wählen Sie unter "Protokolle" die sitzungsbezogenen Protokollkategorien aus, die Sie erfassen möchten.
- Wählen Sie unter "Zieldetails" die Option "An Log Analytics-Arbeitsbereich senden" aus.
- Wählen Sie Ihren Log Analytics-Arbeitsbereich aus (oder erstellen Sie einen neuen Arbeitsbereich).
- Wählen Sie Speichern aus.
Log Analytics-Tabellen
| Protokollkategorie | Log Analytics-Tabelle | Beschreibung |
|---|---|---|
| Anwendungsprotokolle | AppEnvSessionConsoleLogs |
Standardausgabe (stdout) und Standardfehler (stderr), der von der containerisierten Anwendung ausgegeben wird. |
| Plattformprotokolle |
AppEnvSessionLifecycleLogs, AppEnvSessionPoolEvents |
Plattformgenerierte Ereignisse im Zusammenhang mit der Zuweisung des Sitzungspools, des Lebenszyklus und des Betriebsstatus. |
Wenn Protokolle direkt an Log Analytics gesendet werden, verwenden die Tabellen das suffix _CL (z. B AppEnvSessionConsoleLogs_CL. ). Wenn Protokolle über Die Diagnoseeinstellungen von Azure Monitor weitergeleitet werden, enthalten die Tabellennamen nicht das _CL Suffix.
Anzeigen von Sitzungsprotokollen
Nachdem Diagnoseeinstellungen konfiguriert wurden, werden Protokolle an Ihren Log Analytics-Arbeitsbereich gesendet.
Abfrageprotokolle in Log Analytics
- Navigieren Sie im Azure-Portal zu Ihrem Log Analytics-Arbeitsbereich .
- Wählen Sie die Option Protokolle unter Allgemein aus.
- Verwenden Sie kusto Query Language (KQL), um Sitzungsprotokolle abzufragen.
Beispielabfragen
Anzeigen der letzten Konsolenprotokolle aus Sitzungen:
AppEnvSessionConsoleLogs
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc
| take 100
Anzeigen von Sitzungslebenszyklusereignissen:
AppEnvSessionLifecycleLogs
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc
Anzeigen von Sitzungspoolereignissen:
AppEnvSessionPoolEvents
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc
Metriken
Azure Container Apps gibt Azure Monitor-Metriken für benutzerdefinierte Containersitzungspools aus. Verwenden Sie diese Metriken, um die Poolkapazität und -aktivität im Laufe der Zeit nachzuverfolgen.
Unterstützte Metriken
Die vollständige Liste finden Sie unter "Unterstützte Metriken – Microsoft.App/sessionpools – Azure Monitor".
| Metric | Name in der REST-API | Einheit | Aggregation | Maße | Zeitkörner | DS-Export |
|---|---|---|---|---|---|---|
|
Anzahl der Ausführungssitzungen Anzahl der aktuell ausgeführten Sitzungspods im Sitzungspool |
PoolExecutingPodCount |
Zählen | Summe (Summe), Mittelwert, Maximum, Minimum | poolName |
PT1M | Ja |
|
Anzahl der erstellten Sitzungen Anzahl der Erstellung von Sitzungspods im Sitzungspool |
PoolPendingPodCount |
Zählen | Summe (Summe), Mittelwert, Maximum, Minimum | poolName |
PT1M | Ja |
|
Anzahl bereiter Sitzungen Anzahl der bereiten Sitzungspods im Sitzungspool |
PoolReadyPodCount |
Zählen | Summe (Summe), Mittelwert, Maximum, Minimum | poolName |
PT1M | Ja |
Sitzungsmetriken anzeigen
Sie können entweder Azure Monitor- oder Container-Apps-Umgebungsmetriken verwenden, um sitzungsbasierte Metriken anzuzeigen.
Option 1: Azure Monitor-Metriken
- Öffnen Sie die Seite "Metriken von Azure Monitor".
- Wählen Sie Ihren benutzerdefinierten Containersitzungspool als Bereich aus.
- Wählen Sie eine Metrik und Aggregation aus, die angezeigt werden soll.
Option 2: Metriken der Container-Apps-Umgebung
- Öffnen Sie im Azure-Portal Ihre Container-Apps-Umgebung.
- Klicken Sie auf Metriken.
- Verwenden Sie Scope, um Ihren benutzerdefinierten Containersitzungspool auszuwählen.
- Wählen Sie eine Metrik und Aggregation aus, die angezeigt werden soll.