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.
Sitzungspools bieten Untersekunden-Sitzungszuweisungszeiten für neue Pools und sind für die Verwaltung und den Lebenszyklus jeder Sitzung verantwortlich.
Konfiguration
Sie können das Verhalten von Sitzungspools mithilfe der folgenden Parameter steuern, die für az containerapp sessionpool create verfügbar sind.
| Zweck | Eigentum | Description |
|---|---|---|
| Maximale Anzahl von Sitzungen festlegen | max-sessions |
Die maximale Anzahl gleichzeitiger Sitzungen, die in einem Pool zulässig sind. Anfragen, die eingehen, nachdem der maximale Grenzwert erreicht wurde, erhalten einen 404 Serverfehler, der anzeigt, dass dem Pool keine weiteren Sitzungen mehr zugewiesen werden. |
| Wartezeit | cooldown-period |
Die Anzahl der Sekunden, die eine Sitzung im Leerlauf sein kann, bevor die Sitzung beendet wird. Der Leerlaufzeitraum wird jedes Mal zurückgesetzt, wenn die API der Sitzung aufgerufen wird. Der Wert muss zwischen 300 und 3600. |
| Zielanzahl der Sitzungen | ready-sessions |
Die Zielanzahl der Sitzungen, die in einem Pool bereit zu halten sind. |
Erstellen eines Pools
Der Prozess zum Erstellen eines Pools unterscheidet sich geringfügig davon, ob Sie einen Codedolmetscherpool oder einen benutzerdefinierten Containerpool erstellen.
Codedolmetscherpool
Um einen Codedolmetschersitzungspool mit der Azure CLI zu erstellen, stellen Sie sicher, dass Sie über die neuesten Versionen der Azure CLI und der Azure Container Apps-Erweiterung mit den folgenden Befehlen verfügen:
# Upgrade the Azure CLI
az upgrade
# Install or upgrade the Azure Container Apps extension
az extension add --name containerapp --upgrade --allow-preview true -y
Verwenden Sie den az containerapps sessionpool create Befehl, um den Pool zu erstellen. Im folgenden Beispiel wird ein Python-Codedolmetscher-Sitzungspool mit dem Namen erstellt my-session-pool. Stellen Sie sicher, dass Sie <RESOURCE_GROUP> durch den Namen Ihrer Ressourcengruppe ersetzen, bevor Sie den Befehl ausführen.
az containerapp sessionpool create \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--location westus2 \
--container-type PythonLTS \
--max-sessions 100 \
--cooldown-period 300 \
--network-status EgressDisabled
Sie können beim Erstellen eines Sitzungspools die folgenden Einstellungen definieren:
| Setting | Description |
|---|---|
--container-type |
Der Typ des zu verwendenden Codedolmetschers. Zu den unterstützten Werten gehören PythonLTS, NodeLTSund Shell. |
--max-sessions |
Die maximale Anzahl der zugewiesenen Sitzungen, die gleichzeitig zulässig sind. Der Maximalwert ist 600. |
--cooldown-period |
Die Anzahl der zulässigen Leerlauf-Sekunden vor der Beendigung. Der Leerlaufzeitraum wird jedes Mal zurückgesetzt, wenn die API der Sitzung aufgerufen wird. Der zulässige Bereich liegt zwischen 300 und 3600. |
--network-status |
Legt fest, ob ausgehender Netzwerkdatenverkehr aus der Sitzung zulässig ist. Gültige Werte sind EgressDisabled (Standard) und EgressEnabled. |
Von Bedeutung
Wenn Sie ausgehenden Datenverkehr zulassen, kann Code, der in der Sitzung ausgeführt wird, auf das Internet zugreifen. Verwenden Sie Vorsicht, wenn der Code nicht vertrauenswürdig ist, da er zum Ausführen bösartiger Aktivitäten wie Denial-of-Service-Angriffe verwendet werden kann.
Abrufen des Verwaltungs-API-Endpunkts
Um Sitzungen mit Code-Interpreter mit LLM-Framework-Integrationen zu nutzen oder direkt die Verwaltungs-API-Endpunkte aufzurufen, benötigen Sie den Verwaltungs-API-Endpunkt des Pools.
Der Endpunkt befindet sich im Format https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>.
Verwenden Sie den az containerapps sessionpool show Befehl, um den Verwaltungs-API-Endpunkt für einen Sitzungspool abzurufen. Stellen Sie sicher, dass Sie den Namen der Ressourcengruppe durch <RESOURCE_GROUP> ersetzen, bevor Sie den Befehl ausführen.
az containerapp sessionpool show \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--query 'properties.poolManagementEndpoint' -o tsv
Benutzerdefinierter Containerpool
Um einen benutzerdefinierten Containersitzungspool zu erstellen, müssen Sie ein Containerimage und Konfigurationseinstellungen für den Pool bereitstellen.
Sie rufen jede Sitzung mithilfe von HTTP-Anfragen auf oder kommunizieren mit ihnen. Der benutzerdefinierte Container muss einen HTTP-Server auf einem Port verfügbar machen, den Sie angeben, um auf diese Anforderungen zu reagieren.
Um einen benutzerdefinierten Containersitzungspool mit der Azure CLI zu erstellen, stellen Sie sicher, dass Sie über die neuesten Versionen der Azure CLI und die Azure Container Apps-Erweiterung mit den folgenden Befehlen verfügen:
az upgrade
az extension add --name containerapp --upgrade --allow-preview true -y
Benutzerdefinierte Containersitzungspools erfordern eine Azure Container Apps-Umgebung mit Unterstützung für Workloadprofile. Wenn Sie nicht über eine Umgebung verfügen, verwenden Sie den az containerapp env create -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP> --location <LOCATION> --enable-workload-profiles Befehl zum Erstellen einer Umgebung.
Verwenden Sie den Befehl az containerapp sessionpool create, um einen benutzerdefinierten Containersitzungspool zu erstellen.
Im folgenden Beispiel wird ein Sitzungspool namens my-session-pool mit einem benutzerdefinierten Containerimage myregistry.azurecr.io/my-container-image:1.0 erstellt.
Ersetzen Sie vor dem Senden der Anforderung die Platzhalter zwischen den <> Klammern durch die entsprechenden Werte für Den Sitzungspool und den Sitzungsbezeichner.
az containerapp sessionpool create \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--environment <ENVIRONMENT> \
--registry-server myregistry.azurecr.io \
--registry-username <USER_NAME> \
--registry-password <PASSWORD> \
--container-type CustomContainer \
--image myregistry.azurecr.io/my-container-image:1.0 \
--cpu 0.25 --memory 0.5Gi \
--target-port 80 \
--cooldown-period 300 \
--network-status EgressDisabled \
--max-sessions 10 \
--ready-sessions 5 \
--env-vars "key1=value1" "key2=value2" \
--location <LOCATION>
Mit diesem Befehl wird ein Sitzungspool mit den folgenden Einstellungen erstellt:
| Parameter | Wert | Description |
|---|---|---|
--name |
my-session-pool |
Der Name des Sitzungspools. |
--resource-group |
my-resource-group |
Die Ressourcengruppe, die den Sitzungspool enthält. |
--environment |
my-environment |
Der Name oder die Ressourcen-ID der Umgebung der Container-App. |
--container-type |
CustomContainer |
Der Containertyp des Sitzungspools. Für benutzerdefinierte Containersitzungen muss der Typ CustomContainer sein. |
--image |
myregistry.azurecr.io/my-container-image:1.0 |
Das Container-Image, das für den Sitzungspool verwendet werden soll. |
--registry-server |
myregistry.azurecr.io |
Der Hostname des Containerregistrierungsservers. |
--registry-username |
my-username |
Der Benutzername, der sich bei der Containerregistrierung anmeldet. |
--registry-password |
my-password |
Das Kennwort für die Anmeldung bei der Containerregistrierung. |
--cpu |
0.25 |
Die erforderliche CPU in Kernen. |
--memory |
0.5Gi |
Der erforderliche Arbeitsspeicher. |
--target-port |
80 |
Der Sitzungsport, der für eingehenden Datenverkehr verwendet wird. |
--cooldown-period |
300 |
Die Anzahl der Sekunden, die eine Sitzung im Leerlauf sein kann, bevor die Sitzung beendet wird. Der Leerlaufzeitraum wird jedes Mal zurückgesetzt, wenn die API der Sitzung aufgerufen wird. Der Wert muss zwischen 300 und 3600. |
--network-status |
EgressDisabled |
Legt fest, ob ausgehender Netzwerkdatenverkehr aus der Sitzung zulässig ist. Gültige Werte sind EgressDisabled (Standard) und EgressEnabled. |
--max-sessions |
10 |
Die maximale Anzahl von Sitzungen, die gleichzeitig zugewiesen werden können. |
--ready-sessions |
5 |
Die Zielanzahl der Sitzungen, die immer im Sitzungspool bereit sind. Erhöhen Sie diese Anzahl, wenn Sitzungen schneller zugewiesen werden, als der Pool aufgefüllt wird. |
--env-vars |
"key1=value1" "key2=value2" |
Die Umgebungsvariablen, die im Container festgelegt werden sollen. |
--location |
"Supported Location" |
Der Speicherort des Sitzungspools. |
Verwenden Sie az containerapp sessionpool show den Befehl, um den Status des Sitzungspools zu überprüfen:
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Verwenden Sie den az containerapp sessionpool update Befehl, um den Sitzungspool zu aktualisieren.
Von Bedeutung
Wenn die Sitzung verwendet wird, um nicht vertrauenswürdigen Code auszuführen, schließen Sie keine Informationen oder Daten ein, auf die der nicht vertrauenswürdige Code zugreifen soll. Gehen Sie davon aus, dass der Code bösartig ist und vollzugriff auf den Container hat, einschließlich der Umgebungsvariablen, geheimen Schlüssel und Dateien.
Verwaltungsendpunkt
Von Bedeutung
Der Sitzungsbezeichner ist vertrauliche Informationen, die einen sicheren Prozess erfordern, während Sie seinen Wert erstellen und verwalten. Um diesen Wert zu schützen, muss Ihre Anwendung sicherstellen, dass jeder Benutzer oder Mandant nur Zugriff auf seine eigenen Sitzungen hat.
Wenn sie den Zugriff auf Sitzungen nicht sichern, kann es zu Missbrauch oder unbefugtem Zugriff auf daten führen, die in den Sitzungen Ihrer Benutzer gespeichert sind. Weitere Informationen finden Sie unter Sitzungsbezeichner
Die folgenden Endpunkte stehen für die Verwaltung von Sitzungen in einem Pool zur Verfügung:
| Endpunktpfad | Methode | Description |
|---|---|---|
code/execute |
POST |
Ausführen von Code in einer Sitzung. |
files/upload |
POST |
Hochladen einer Datei in eine Sitzung. |
files/content/{filename} |
GET |
Laden Sie eine Datei aus einer Sitzung herunter. |
files |
GET |
Die Dateien in einer Sitzung auflisten. |
Sie erstellen die vollständige URL für jeden Endpunkt, indem Sie den Verwaltungs-API-Endpunkt des Pools mit dem Endpunktpfad verketten. Die Abfragezeichenfolge muss einen identifier Parameter enthalten, der den Sitzungsbezeichner und einen api-version Parameter mit dem Wert 2024-02-02-previewenthält.
Beispiel: https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/code/execute?api-version=2024-02-02-preview&identifier=<IDENTIFIER>
Verwenden Sie den az containerapp sessionpool show Befehl, um den Verwaltungsendpunkt des Sitzungspools abzurufen:
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Alle Anforderungen an den Poolverwaltungsendpunkt müssen einen Authorization Header mit einem Bearertoken enthalten. Informationen zum Authentifizieren mit der Poolverwaltungs-API finden Sie unter "Authentifizierung".
Jede API-Anforderung muss auch den Abfragezeichenfolgenparameter identifier mit der Sitzungs-ID enthalten. Mit dieser eindeutigen Sitzungs-ID kann Ihre Anwendung mit bestimmten Sitzungen interagieren. Weitere Informationen zu Sitzungsbezeichnern finden Sie unter Sitzungs-IDs.
Zwischenspeichern von Bildern
Wenn ein Sitzungspool erstellt oder aktualisiert wird, zwischenspeichert Azure Container Apps das Container-Image im Pool. Mit dieser Zwischenspeicherung können Sie den Prozess der Erstellung neuer Sitzungen beschleunigen.
Alle Änderungen am Bild werden in den Sitzungen nicht automatisch wiedergegeben. Um das Image zu aktualisieren, aktualisieren Sie den Sitzungspool mit einem neuen Imagetag. Verwenden Sie für jede Bildaktualisierung ein eindeutiges Tag, um sicherzustellen, dass das neue Bild abgerufen wird.
Verwandte Inhalte
Sitzungstypen: Erfahren Sie mehr über die verschiedenen Arten dynamischer Sitzungen:
Lernprogramme: Arbeiten Sie direkt mit der REST-API oder über einen LLM-Agent:
- Verwenden Sie einen LLM-Agent:
- Verwenden der REST-API