Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Sessionspooler ger undersekunder sessionsallokeringstider för nya pooler och ansvarar för hantering och livscykel för varje session.
Konfiguration
Du kan styra beteendet för sessionspooler med hjälp av följande parametrar som är tillgängliga för az containerapp sessionpool create.
| Avsikt | Fastighet | Description |
|---|---|---|
| Ange maximalt antal sessioner | max-sessions |
Maximalt antal samtidiga sessioner som tillåts i en pool. Begäranden som kommer in efter att maxgränsen har uppfyllts returneras ett 404 serverfel som anger att inga fler sessioner allokeras till poolen. |
| Väntetid | cooldown-period |
Antalet sekunder som en session kan vara inaktiv innan sessionen avslutas. Inaktivitetsperioden återställs varje gång sessionens API anropas. Värdet måste vara mellan 300 och 3600. |
| Antal målsessioner | ready-sessions |
Målantalet sessioner som ska hållas redo i en pool. |
Skapa en pool
Processen för att skapa en pool skiljer sig något beroende på om du skapar en kodtolkarpool eller en anpassad containerpool.
Kodtolkarpool
Om du vill skapa en kodtolksessionspool med hjälp av Azure CLI kontrollerar du att du har de senaste versionerna av Azure CLI och Azure Container Apps-tillägget med följande kommandon:
# Upgrade the Azure CLI
az upgrade
# Install or upgrade the Azure Container Apps extension
az extension add --name containerapp --upgrade --allow-preview true -y
az containerapps sessionpool create Använd kommandot för att skapa poolen. I följande exempel skapas en Python-kodtolkarsessionspool med namnet my-session-pool. Ersätt <RESOURCE_GROUP> med resursgruppens namn innan du kör kommandot.
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
Du kan definiera följande inställningar när du skapar en sessionspool:
| Inställning | Description |
|---|---|
--container-type |
Vilken typ av kodtolkare som ska användas. Värden som stöds är PythonLTS, NodeLTSoch Shell. |
--max-sessions |
Det maximala antalet tilldelade sessioner som tillåts samtidigt. Det maximala värdet är 600. |
--cooldown-period |
Antalet tillåtna inaktiva sekunder före avslutning. Inaktivitetsperioden återställs varje gång sessionens API anropas. Det tillåtna intervallet är mellan 300 och 3600. |
--network-status |
Anger om utgående nätverkstrafik tillåts från sessionen. Giltiga värden är EgressDisabled (standard) och EgressEnabled. |
Viktigt!
Om du aktiverar utgående trafik kan kod som körs i sessionen komma åt Internet. Var försiktig när koden inte är betrodd eftersom den kan användas för att utföra skadliga aktiviteter, till exempel överbelastningsattacker.
Hämta hanterings-API-slutpunkten
Om du vill använda kodtolkarsessioner med LLM-ramverksintegreringar eller genom att anropa hanterings-API-slutpunkterna direkt behöver du poolens API-slutpunkt för hantering.
Slutpunkten är i formatet https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>.
För att hämta hanterings-API-slutpunkten för en sessionspool, använd kommandot az containerapps sessionpool show. Ersätt <RESOURCE_GROUP> med resursgruppens namn innan du kör kommandot.
az containerapp sessionpool show \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--query 'properties.poolManagementEndpoint' -o tsv
Anpassad containerpool
Om du vill skapa en anpassad containersessionspool måste du ange konfigurationsinställningar för containeravbildningar och pooler.
Du anropar eller kommunicerar med varje session med hjälp av HTTP-begäranden. Den anpassade containern måste exponera en HTTP-server på en port som du anger för att svara på dessa begäranden.
Om du vill skapa en anpassad containersessionspool med hjälp av Azure CLI kontrollerar du att du har de senaste versionerna av Azure CLI och Azure Container Apps-tillägget med följande kommandon:
az upgrade
az extension add --name containerapp --upgrade --allow-preview true -y
Anpassade containersessionspooler kräver en arbetsbelastningsprofilaktiverad Azure Container Apps-miljö. Om du inte har en miljö använder du az containerapp env create -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP> --location <LOCATION> --enable-workload-profiles kommandot för att skapa en.
az containerapp sessionpool create Använd kommandot för att skapa en anpassad containersessionspool.
I följande exempel skapas en sessionspool med namnet my-session-pool med en anpassad containeravbildning myregistry.azurecr.io/my-container-image:1.0.
Innan du skickar begäran ersätter du platshållarna mellan <> hakparenteserna med lämpliga värden för sessionspoolen och sessionsidentifieraren.
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>
Det här kommandot skapar en sessionspool med följande inställningar:
| Parameter | Värde | Description |
|---|---|---|
--name |
my-session-pool |
Namnet på sessionspoolen. |
--resource-group |
my-resource-group |
Resursgruppen som innehåller sessionspoolen. |
--environment |
my-environment |
Namnet eller resurs-ID:t för containerappens miljö. |
--container-type |
CustomContainer |
Containertypen för sessionspoolen. Måste vara CustomContainer för anpassade containersessioner. |
--image |
myregistry.azurecr.io/my-container-image:1.0 |
Containeravbildningen som ska användas för sessionspoolen. |
--registry-server |
myregistry.azurecr.io |
Värdnamnet för containerregisterservern. |
--registry-username |
my-username |
Användarnamnet för att logga in i containerregistret. |
--registry-password |
my-password |
Lösenordet för att logga in i containerregistret. |
--cpu |
0.25 |
Antalet kärnor som krävs för processorn. |
--memory |
0.5Gi |
Det minne som krävs. |
--target-port |
80 |
Sessionsporten som används för inkommande trafik. |
--cooldown-period |
300 |
Antalet sekunder som en session kan vara inaktiv innan sessionen avslutas. Inaktivitetsperioden återställs varje gång sessionens API anropas. Värdet måste vara mellan 300 och 3600. |
--network-status |
EgressDisabled |
Anger om utgående nätverkstrafik tillåts från sessionen. Giltiga värden är EgressDisabled (standard) och EgressEnabled. |
--max-sessions |
10 |
Det maximala antalet sessioner som kan allokeras samtidigt. |
--ready-sessions |
5 |
Målantalet sessioner som är klara i sessionspoolen hela tiden. Öka det här antalet om sessioner allokeras snabbare än poolen fylls på. |
--env-vars |
"key1=value1" "key2=value2" |
Miljövariablerna som ska anges i containern. |
--location |
"Supported Location" |
Platsen för sessionspoolen. |
Om du vill kontrollera sessionspoolens status använder du az containerapp sessionpool show kommandot:
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Om du vill uppdatera sessionspoolen använder du az containerapp sessionpool update kommandot .
Viktigt!
Om sessionen används för att köra kod som inte är betrodd ska du inte inkludera information eller data som du inte vill att den ej betrodda koden ska komma åt. Anta att koden är skadlig och har fullständig åtkomst till containern, inklusive dess miljövariabler, hemligheter och filer.
Hanteringsslutpunkt
Viktigt!
Sessionsidentifieraren är känslig information som kräver en säker process när du skapar och hanterar dess värde. För att skydda det här värdet måste programmet se till att varje användare eller klient endast har åtkomst till sina egna sessioner.
Om du inte kan skydda åtkomsten till sessioner kan det leda till missbruk eller obehörig åtkomst till data som lagras i användarnas sessioner. Mer information finns i Sessionsidentifierare
Följande slutpunkter är tillgängliga för att hantera sessioner i en pool:
| Slutpunkt sökväg | Metod | Description |
|---|---|---|
code/execute |
POST |
Köra kod i en session. |
files/upload |
POST |
Ladda upp en fil till en session. |
files/content/{filename} |
GET |
Ladda ned en fil från en session. |
files |
GET |
Visa en lista över filerna i en session. |
Du skapar den fullständiga URL:en för varje slutpunkt genom att sammanfoga poolens API-slutpunkt för hantering med slutpunktssökvägen. Frågesträngen måste innehålla en identifier parameter som innehåller sessionsidentifieraren och en api-version parameter med värdet 2024-02-02-preview.
Till exempel: https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/code/execute?api-version=2024-02-02-preview&identifier=<IDENTIFIER>
Om du vill hämta sessionspoolens hanteringsslutpunkt använder du az containerapp sessionpool show kommandot:
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Alla begäranden till slutpunkten för poolhantering måste innehålla en Authorization rubrik med en bearer-token. Information om hur du autentiserar med API:et för poolhantering finns i Autentisering.
Varje API-begäran måste också innehålla frågesträngsparametern identifier med sessions-ID:t. Med det här unika sessions-ID:t kan ditt program interagera med specifika sessioner. Mer information om sessionsidentifierare finns i Sessionsidentifierare.
Cachelagring av bilder
När en sessionspool skapas eller uppdateras cachelagrar Azure Container Apps containeravbildningen i poolen. Den här cachelagringen hjälper till att påskynda processen med att skapa nya sessioner.
Ändringar i avbildningen återspeglas inte automatiskt i sessionerna. Uppdatera avbildningen genom att uppdatera sessionspoolen med en ny avbildningstagg. Använd en unik tagg för varje bilduppdatering för att säkerställa att den nya avbildningen hämtas.
Relaterat innehåll
Sessionstyper: Lär dig mer om de olika typerna av dynamiska sessioner:
Självstudier: Arbeta direkt med REST-API:et eller via en LLM-agent:
- Använd en LLM-agent:
- Använda REST-API:et