Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Sessie pools bieden subseconde sessietoewijzingstijden en beheren de levenscyclus van elke sessie.
Algemene concepten voor beide pools
Het proces voor het maken van een pool verschilt enigszins, afhankelijk van of u een code-interpretersessiegroep of een aangepaste containergroep maakt. De volgende concepten zijn van toepassing op beide.
Als u sessiegroepen wilt maken met behulp van de Azure CLI, moet u ervoor zorgen dat u de nieuwste versies van de Azure CLI en de Azure Container Apps-extensie hebt:
# Upgrade the Azure CLI
az upgrade
# Install or upgrade the Azure Container Apps extension
az extension add --name containerapp --upgrade --allow-preview true -y
Algemene opdrachten voor sessiepools zijn onder andere:
az containerapp sessionpool createaz containerapp sessionpool showaz containerapp sessionpool listaz containerapp sessionpool updateaz containerapp sessionpool delete
Gebruik --help met elke opdracht om beschikbare argumenten en ondersteunde waarden te bekijken.
Gebruik de az containerapp sessionpool show opdracht om de status van een sessiegroep te controleren:
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Wanneer u een pool maakt of bijwerkt, kunt u een maximum aantal gelijktijdige sessies, een niet-actieve cooldownperiode instellen en of uitgaand netwerkverkeer is toegestaan voor sessies.
Belangrijk
Als u uitgaande verbindingen inschakelt, heeft code die in de sessie wordt uitgevoerd toegang tot internet. Wees voorzichtig wanneer de code niet wordt vertrouwd omdat deze kan worden gebruikt voor het uitvoeren van schadelijke activiteiten, zoals Denial of Service-aanvallen.
Belangrijk
Als de sessie wordt gebruikt om niet-vertrouwde code uit te voeren, neemt u geen informatie of gegevens op die u niet wilt dat de niet-vertrouwde code toegang heeft. Stel dat de code schadelijk is en volledige toegang heeft tot de container, inclusief de omgevingsvariabelen, geheimen en bestanden.
Een pool configureren
Gebruik az containerapp sessionpool create --help deze functie om de meest recente CLI-argumenten voor de configuratie van sessiegroepen weer te geven. Deze sectie is gericht op geavanceerde configuratieopties die van toepassing zijn op API-versies.
Configuratie van de levenscyclus van sessies
Wanneer u een sessiegroep maakt of bijwerkt, kunt u configureren hoe sessies worden beëindigd door de instelling in te stellen properties.dynamicPoolConfiguration.lifecycleConfiguration. Kies een van de twee levenscyclustypen die beginnen met de API-versie 2025-01-01.
Zie de specificatie van de SessionPools-API voor de volledige API.
Getimed (standaard)
Met de Timed levenscyclus wordt een sessie verwijderd na een periode van inactiviteit. Elke aanvraag die naar een sessie wordt verzonden, stelt de afkoeltimer opnieuw in, waardoor de time-to-live van de sessie wordt uitgebreid.cooldownPeriodInSeconds
Opmerking
Timed wordt ondersteund voor alle typen sessiegroepen en werkt hetzelfde als executionType: Timed in eerdere API-versies.
{
"dynamicPoolConfiguration": {
"lifecycleConfiguration": {
"cooldownPeriodInSeconds": 600,
"lifecycleType": "Timed"
}
}
}
| Vastgoed | Description |
|---|---|
cooldownPeriodInSeconds |
De sessie wordt verwijderd wanneer er voor deze duur geen aanvragen zijn. |
maxAlivePeriodInSeconds |
Niet ondersteund voor Timed levenscyclus. |
Beheereindpunt
Belangrijk
De sessie-id is gevoelige informatie die een veilig proces vereist tijdens het maken en beheren van de waarde. Om deze waarde te beveiligen, moet uw toepassing ervoor zorgen dat elke gebruiker of tenant alleen toegang heeft tot hun eigen sessies.
Als u de toegang tot sessies niet kunt beveiligen, kan dit leiden tot misbruik of onbevoegde toegang tot gegevens die zijn opgeslagen in de sessies van uw gebruikers. Zie Sessie-id's voor meer informatie
Alle aanvragen voor het eindpunt voor poolbeheer moeten een Authorization header met een Bearer-token bevatten. Zie Verificatie voor meer informatie over verificatie met de poolbeheer-API.
Elke API-aanvraag moet ook de queryreeksparameter identifier met de sessie-id bevatten. Met deze unieke sessie-id kan uw toepassing communiceren met specifieke sessies. Zie Sessie-id's voor meer informatie over sessie-id's.
Afbeeldingscache
Wanneer een sessiepool wordt gemaakt of bijgewerkt, cachet Azure Container Apps de containerafbeeldingen in de pool. Deze caching helpt het proces van het maken van nieuwe sessies te versnellen.
Eventuele wijzigingen in de afbeelding worden niet automatisch doorgevoerd in de sessies. Werk de afbeelding bij door de sessiegroep bij te werken met een nieuwe afbeeldingstag. Gebruik een unieke tag voor elke afbeeldingupdate om ervoor te zorgen dat de nieuwe afbeelding wordt geüpload.
Code-interpreter sessiepool
Gebruik de az containerapps sessionpool create opdracht om de pool te maken. In het volgende voorbeeld wordt een python-code-interpretersessiegroep gemaakt met de naam my-session-pool. Zorg ervoor dat je <RESOURCE_GROUP> vervangt door de naam van een resourcegroep voordat je de opdracht uitvoert.
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
U kunt de volgende instellingen definiëren wanneer u een sessiegroep maakt:
| Configuratie | Description |
|---|---|
--container-type |
Het type code-interpreter dat moet worden gebruikt. Ondersteunde waarden zijn onder andere PythonLTS, NodeLTS, Shellen CustomContainer. |
--max-sessions |
Het maximum aantal toegewezen sessies dat gelijktijdig is toegestaan. De maximumwaarde is 600. |
--cooldown-period |
Het aantal toegestane seconden voor inactiviteit vóór beëindiging. De niet-actieve periode wordt opnieuw ingesteld telkens wanneer de API van de sessie wordt aangeroepen. Het toegestane bereik ligt tussen 300 en 3600. |
--network-status |
Hiermee geeft u op of uitgaand netwerkverkeer is toegestaan vanuit de sessie. Geldige waarden zijn EgressDisabled (standaard) en EgressEnabled. |
Beheereindpunt van code-interpreter
Als u code-interpretersessies wilt gebruiken met LLM-frameworkintegraties of door de beheer-API-eindpunten rechtstreeks aan te roepen, hebt u het beheer-API-eindpunt van de pool nodig.
Het eindpunt heeft de indeling https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>.
Als u het beheer-API-eindpunt voor een sessiegroep wilt ophalen, raadpleegt u de algemene sectie hierboven voor een voorbeeldopdracht.
De volgende eindpunten zijn beschikbaar voor het beheren van sessies in een pool:
| Pad naar eindpunt | Methode | Description |
|---|---|---|
code/execute |
POST |
Voer code uit in een sessie. |
files/upload |
POST |
Upload een bestand naar een sessie. |
files/content/{filename} |
GET |
Een bestand downloaden van een sessie. |
files |
GET |
De bestanden in een sessie weergeven. |
U bouwt de volledige URL voor elk eindpunt door het beheer-API-eindpunt van de pool samen te voegen met het eindpuntpad. De queryreeks moet een identifier parameter bevatten die de sessie-id bevat en een api-version parameter met de waarde 2024-02-02-preview. API-versies kunnen worden gewijzigd, dus bevestig altijd de nieuwste versie in de REST API-documenten voordat u deze in productie gebruikt.
Bijvoorbeeld: {sessionManagementEndpoint}/code/execute?api-version=2024-02-02-preview&identifier=<IDENTIFIER>
Zie Voor REST API-verwijzingen Container Apps-gegevensvlak-API's en het overzicht van bewerkingen op het gegevensvlak van Container Apps.
Aangepaste containersessiegroep
Om een aangepaste containersessiepool te maken, moet u een containerimage en de poolconfiguratie-instellingen opgeven.
U roept elke sessie aan of communiceert met behulp van HTTP-aanvragen. De aangepaste container moet een HTTP-server beschikbaar maken op een poort die u opgeeft om op deze aanvragen te reageren.
De volgende mogelijkheden zijn alleen van toepassing op aangepaste containersessiegroepen.
Eindpunt voor aangepast containerbeheer
Voor aangepaste containersessiegroepen haalt u het beheereindpunt op uit de Azure-portal of de Azure CLI-uitvoer. Het eindpunt wordt geretourneerd als poolManagementEndpoint.
Het eindpunt heeft de indeling https://<SESSION_POOL_NAME>.<ENVIRONMENT_ID>.<REGION>.azurecontainerapps.io.
OnContainerExit
Met de OnContainerExit levenscyclus blijft een sessie actief totdat de container zelfstandig wordt afgesloten of de maximale levensduur is bereikt.
{
"dynamicPoolConfiguration": {
"lifecycleConfiguration": {
"maxAlivePeriodInSeconds": 6000,
"lifecycleType": "OnContainerExit"
}
}
}
| Vastgoed | Description |
|---|---|
maxAlivePeriodInSeconds |
Maximale tijd dat de sessie actief blijft voordat deze wordt verwijderd. |
cooldownPeriodInSeconds |
Niet ondersteund voor levenscyclus OnContainerExit. |
Containerprobes
Met containerprobes kunt u gezondheidscontroles definiëren voor sessiecontainers, zodat de pool beschadigde sessies kan detecteren en deze kan vervangen om het readySessionInstances doel gezond te houden.
Sessiegroepen ondersteunen Livenesstests en opstarttests. Zie Gezondheidspolls in Azure Container Apps voor meer informatie over probegedrag.
Wanneer u een sessiepool maakt of bijwerkt, specificeer u probes in properties.customContainerTemplate.containers. Zie voor het volledige schema voor de requestbody de API-referentie SessionPools maken of bijwerken. In het volgende voorbeeld ziet u een gedeeltelijke configuratie met testdefinities:
{
"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
}
}
}
Voor aangepaste containersessiegroepen is een Azure Container Apps-omgeving met workloadprofielen vereist. Als u geen omgeving hebt, gebruikt u de az containerapp env create -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP> --location <LOCATION> opdracht om er een te maken.
Gebruik de az containerapp sessionpool create opdracht om een aangepaste containersessiegroep te maken.
In het volgende voorbeeld wordt een sessiepool met de naam my-session-pool gemaakt met een aangepaste containerimage myregistry.azurecr.io/my-container-image:1.0.
Voordat u de aanvraag verzendt, vervangt u de tijdelijke aanduidingen tussen de <> haken door de juiste waarden voor uw sessiegroep en sessie-id.
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>
Met deze opdracht maakt u een sessiegroep met de volgende instellingen:
| Kenmerk | Waarde | Description |
|---|---|---|
--name |
my-session-pool |
De naam van de sessiegroep. |
--resource-group |
my-resource-group |
De resourcegroep die de sessiepool bevat. |
--environment |
my-environment |
De naam of resource-id van de omgeving van de containerapp. |
--container-type |
CustomContainer |
Het containertype van de sessiepool. Moet CustomContainer zijn voor aangepaste containersessies. |
--image |
myregistry.azurecr.io/my-container-image:1.0 |
De containerimage die moet worden gebruikt voor de session pool. |
--registry-server |
myregistry.azurecr.io |
De hostnaam van de containerregisterserver. |
--registry-username |
my-username |
De gebruikersnaam om u aan te melden bij het containerregister. |
--registry-password |
my-password |
Het wachtwoord om u aan te melden bij het containerregister. |
--cpu |
0.25 |
Het vereiste aantal CPU-kernen. |
--memory |
0.5Gi |
Het vereiste geheugen. |
--target-port |
80 |
De sessiepoort die wordt gebruikt voor inkomend verkeer. |
--cooldown-period |
300 |
Het aantal seconden dat een sessie inactief kan zijn voordat de sessie wordt beëindigd. De niet-actieve periode wordt opnieuw ingesteld telkens wanneer de API van de sessie wordt aangeroepen. De waarde moet tussen 300 en 3600. |
--network-status |
EgressDisabled |
Hiermee geeft u op of uitgaand netwerkverkeer is toegestaan vanuit de sessie. Geldige waarden zijn EgressDisabled (standaard) en EgressEnabled. |
--max-sessions |
10 |
Het maximum aantal sessies dat tegelijkertijd kan worden toegewezen. |
--ready-sessions |
5 |
Het doelaantal sessies die altijd beschikbaar zijn in de sessiepool. Verhoog dit aantal als sessies sneller worden toegewezen dan de pool wordt aangevuld. |
--env-vars |
"key1=value1" "key2=value2" |
De omgevingsvariabelen die moeten worden ingesteld in de container. |
--location |
"Supported Location" |
De locatie van de sessiepool. |
Gebruik het az containerapp sessionpool update commando om de sessiecluster bij te werken.