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.
Containersonden für Sitzungspools
Verwenden Sie Containersonden, um Integritätsprüfungen für benutzerdefinierte Containersitzungspools zu konfigurieren und fehlerfreie Sitzungsinstanzen zu verwalten.
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 basierend auf den Überprüfungen fehlerfrei sind.
- Entfernt automatisch unerwünschte Sitzungsinstanzen.
- Erhöht die Skalierung, um die konfigurierte
readySessionInstancesAnzahl der gesunden Sitzungen beizubehalten.
Sitzungspools unterstützen die Liveness- und Startup-Überprüfungstypen. Weitere Informationen darüber, wie Probes funktionieren, finden Sie unter Integritätssonden 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 Ihr Sitzungspool die erwartete Anzahl funktionsfähiger readySessionInstances nicht beibehält, sollten Sie Folgendes berücksichtigen:
- Überprüfen Sie Containerprotokolle – Überprüfen Sie Sitzungscontainerprotokolle, um Probleme mit Probeendpunkten oder containerstarts zu identifizieren. Siehe Protokolle für benutzerdefinierte Containersitzungspools anzeigen.
- Ü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 ihre Lebensdauer 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 integrieren sich in Azure Monitor und Log Analytics. 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
- Eine Azure-Container-Apps-Umgebung mit einem benutzerdefinierten 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 ausgeführten Sitzungspods im Sitzungspool |
PoolExecutingPodCount |
Zählen | Summe (Summe), Mittelwert, Maximum, Minimum | poolName |
PT1M | Ja |
|
Anzahl der erstellten Sitzungen Anzahl der Erstellung von Sitzungs pods im Sitzungspool |
PoolPendingPodCount |
Zählen | Summe (Summe), Mittelwert, Maximum, Minimum | poolName |
PT1M | Ja |
|
Anzahl bereiter Sitzungen Anzahl der verfügbaren 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 Scope 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.