Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A munkamenetkészletek részszekundumos munkamenet-foglalási időt biztosítanak, és kezelik az egyes munkamenetek életciklusát.
Mindkét halmaz közös fogalmai
A készlet létrehozásának folyamata kissé eltér attól függően, hogy kódértelmezési munkamenetkészletet vagy egyéni tárolókészletet hoz létre. Az alábbi fogalmak mindkét fogalomra vonatkoznak.
Ha munkamenetkészleteket szeretne létrehozni a Azure CLI használatával, győződjön meg arról, hogy a Azure CLI és a Azure Container Apps bővítmény legújabb verzióival rendelkezik:
# Upgrade the Azure CLI
az upgrade
# Install or upgrade the Azure Container Apps extension
az extension add --name containerapp --upgrade --allow-preview true -y
Gyakori munkamenet-készlet parancsok:
az containerapp sessionpool createaz containerapp sessionpool showaz containerapp sessionpool listaz containerapp sessionpool updateaz containerapp sessionpool delete
Bármely --help paranccsal megtekintheti az elérhető argumentumokat és a támogatott értékeket.
A munkamenetkészlet állapotának ellenőrzéséhez használja a az containerapp sessionpool show következő parancsot:
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Készlet létrehozásakor vagy frissítésekor megadhatja az egyidejű munkamenetek maximális számát, az inaktív leállási időszakot, valamint azt, hogy a kimenő hálózati forgalom engedélyezve van-e a munkamenetekhez.
Fontos
Ha engedélyezi a kimenő forgalmat, a munkamenetben futó kód hozzáférhet az internethez. Körültekintően járjon el, ha a kód nem megbízható, mert rosszindulatú tevékenységek, például szolgáltatásmegtagadásos támadások végrehajtására használható.
Fontos
Ha a munkamenet nem megbízható kód futtatására szolgál, ne tartalmazzon olyan adatokat vagy adatokat, amelyekhez nem szeretné, hogy a nem megbízható kód hozzáférjen. Tegyük fel, hogy a kód rosszindulatú, és teljes hozzáféréssel rendelkezik a tárolóhoz, beleértve a környezeti változókat, titkos kulcsokat és fájlokat.
Készlet konfigurálása
A az containerapp sessionpool create --help segítségével megtekintheti a session pool konfigurálásának legújabb parancssori argumentumait. Ez a szakasz az API-verziókra vonatkozó speciális konfigurációs beállításokra összpontosít.
Munkamenet-életciklus konfigurálása
Munkamenetkészlet létrehozásakor vagy frissítésekor a munkamenetek leállításának módját a beállítással properties.dynamicPoolConfiguration.lifecycleConfigurationkonfigurálhatja. Az API-verziótól 2025-01-01kezdve válasszon két életciklus-típus egyikét.
A teljes API-specifikációért tekintse meg a SessionPools API specifikációját.
Időzített (alapértelmezett)
Az életciklus során egy Timed munkamenet egy inaktivitási időszak után törlődik. Bármely lekérdezés, amelyet egy munkamenethez küldenek, újraindítja a várakozási időzítőt, ezáltal meghosszabbítva a munkamenet élettartamát cooldownPeriodInSeconds.
Megjegyzés:
Timed minden munkamenetkészlet-típus támogatott, és ugyanúgy működik, mint executionType: Timed a korábbi API-verziókban.
{
"dynamicPoolConfiguration": {
"lifecycleConfiguration": {
"cooldownPeriodInSeconds": 600,
"lifecycleType": "Timed"
}
}
}
| Ingatlan | Description |
|---|---|
cooldownPeriodInSeconds |
A munkamenet akkor törlődik, ha erre az időtartamra nem érkezett kérés. |
maxAlivePeriodInSeconds |
Nem támogatott az Timed életciklus számára. |
Felügyeleti végpont
Fontos
A munkamenet-azonosító bizalmas információ, amely biztonságos folyamatot igényel az érték létrehozása és kezelése során. Az érték védelme érdekében az alkalmazásnak biztosítania kell, hogy minden felhasználó vagy bérlő csak a saját munkameneteihez férhessen hozzá.
A munkamenetekhez való hozzáférés biztonságossá tételének elmulasztása a felhasználói munkamenetekben tárolt adatokkal való visszaélést vagy jogosulatlan hozzáférést eredményezhet. További információ: Munkamenet-azonosítók
A készletkezelési végpontra irányuló összes kérésnek tartalmaznia kell egy Authorization tulajdonosi jogkivonattal rendelkező fejlécet. A készletkezelési API-val való hitelesítésről a Hitelesítés című témakörben olvashat.
A legtöbb API-kéréshez szükség van a munkamenet-azonosítóval rendelkező lekérdezési sztring paraméterre identifier is. Ez az egyedi munkamenet-azonosító lehetővé teszi az alkalmazás számára az adott munkamenetek kezelését. Az olyan halmazszintű műveletek, mint a munkamenetek listázása, nem igényelnek azonosítót. A munkamenet-azonosítókkal kapcsolatos további információkért lásd a munkamenet-azonosítókat.
Kép gyorsítótárazása
Amikor létrehoz vagy frissít egy munkamenet-medencét, az Azure Container Apps gyorsítótárazza a konténerképet a medencében. Ez a gyorsítótárazás felgyorsítja az új munkamenetek létrehozásának folyamatát.
A képen végzett módosítások nem tükröződnek automatikusan a munkamenetekben. A kép frissítéséhez frissítse a munkamenet-készletet egy új képcímkével. Minden képfrissítéshez használjon egyedi címkét, hogy az új kép be legyen töltve.
Kódértelmező munkamenetkészlete
A készlet létrehozásához használja a az containerapps sessionpool create parancsot. Az alábbi példa létrehoz egy Python kódértelmező munkamenetkészletet my-session-pool néven. A parancs futtatása előtt mindenképpen cserélje le <RESOURCE_GROUP> az erőforráscsoport nevét.
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
Munkamenetkészlet létrehozásakor a következő beállításokat határozhatja meg:
| Setting | Description |
|---|---|
--container-type |
A használni kívánt kódértelmező típusa. A támogatott értékek a következők: PythonLTS, NodeLTS, Shellés CustomContainer. |
--max-sessions |
Az egyidejűleg engedélyezett lefoglalt munkamenetek maximális száma. A maximális érték az 600. |
--cooldown-period |
Az engedélyezett tétlen másodpercek száma a befejezés előtt. A tétlenségi időszak minden alkalommal visszaállításra kerül, amikor a munkamenet API hívás történik. Az engedélyezett tartomány 300 és 3600 között van. |
--network-status |
Megadja, hogy engedélyezett-e a kimenő hálózati forgalom a munkamenetből. Az érvényes értékek az (alapértelmezett) és a EgressDisabledEgressEnabled. |
Kódértelmező felügyeleti végpontja
A kódértelmező-munkamenetek LLM-keretrendszer-integrációkkal való használatához vagy a felügyeleti API-végpontok közvetlen meghívásához szüksége van a készlet felügyeleti API-végpontjára.
A végpont formátuma https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>.
A munkamenetkészlet felügyeleti API-végpontjának lekéréséhez tekintse meg a fenti gyakori szakaszt egy példaparancshoz.
A következő végpontok érhetők el egy készlet munkameneteinek kezeléséhez:
| Végpont elérési útja | Metódus | Description |
|---|---|---|
code/execute |
POST |
Kód végrehajtása munkamenetben. |
files/upload |
POST |
Fájl feltöltése munkamenetbe. |
files/content/{filename} |
GET |
Fájl letöltése munkamenetből. |
files |
GET |
A munkamenetben lévő fájlok listázása. |
session |
GET |
Egy adott munkamenet részleteinek lekérése. |
listSessions |
GET |
A készletben lévő összes munkamenet listázása lapszámozással. |
session |
DELETE |
Munkamenet leállása és törlése. |
Az egyes végpontok teljes URL-címét úgy hozhatja létre, hogy összefűzi a készlet felügyeleti API-végpontját a végpont elérési útjával. A lekérdezési sztringnek tartalmaznia kell egy identifier , a munkamenet-azonosítót tartalmazó paramétert és egy api-version értéket 2024-02-02-previewtartalmazó paramétert. Az API-verziók változhatnak, ezért az éles használat előtt mindig ellenőrizze a REST API-dokumentumok legújabb verzióját.
Például: {sessionManagementEndpoint}/code/execute?api-version=2024-02-02-preview&identifier=<IDENTIFIER>
Az , get session és delete session API-k esetében lásd: list sessionsMunkamenetadatok lekérése a kérések és a válaszok részleteihez.
A REST API-referenciákért tekintse meg a Container Apps adatsík API-jait és a Container Apps adatsík-műveleteinek áttekintését.
Egyéni tároló munkamenetkészlete
Egyéni tároló-munkamenetkészlet létrehozásához meg kell adnia egy tárolórendszerképet és a készlet konfigurációs beállításait.
Minden munkamenetet HTTP-kérésekkel hívhat meg vagy kommunikálhat. Az egyéni tárolónak közzé kell tennie egy HTTP-kiszolgálót egy megadott porton, hogy válaszoljon ezekre a kérésekre.
Az alábbi képességek csak az egyéni tároló-munkamenetkészletekre vonatkoznak.
Egyéni tárolókezelési végpont
Egyéni tároló-munkamenetkészletek esetén kérje le a felügyeleti végpontot a Azure portálról vagy a Azure CLI kimenetből. A végpont a következőként lesz visszaadva poolManagementEndpoint: .
A végpont formátuma https://<SESSION_POOL_NAME>.<ENVIRONMENT_ID>.<REGION>.azurecontainerapps.io.
Az egyéni tárolókészletek ugyanazokat a felügyeleti végpontokat támogatják, mint a kódértelmező-készletek, valamint az Ön által definiált egyéni alkalmazásvégpontokat:
| Végpont elérési útja | Metódus | Description |
|---|---|---|
* (egyéni elérési utak) |
POST, GET |
A tárolóalkalmazás által definiált egyéni végpontok. |
.management/getSession |
POST |
Egy adott munkamenet részleteinek lekérése. |
.management/listSessions |
POST |
A készletben lévő összes munkamenet listázása lapszámozással. |
.management/stopSession |
POST |
Munkamenet megszüntetése. |
A , getSession és stopSession végpontok esetében lásd: listSessionsMunkamenetadatok lekérése a kérések és a válaszok részleteihez.
OnContainerKilépés
Az életciklus során a OnContainerExit munkamenet addig aktív marad, amíg a tároló önállóan nem lép ki, vagy eléri a maximális élettartamot.
{
"dynamicPoolConfiguration": {
"lifecycleConfiguration": {
"maxAlivePeriodInSeconds": 6000,
"lifecycleType": "OnContainerExit"
}
}
}
| Ingatlan | Description |
|---|---|
maxAlivePeriodInSeconds |
A munkamenet maximális időtartama a törlés előtt életben maradhat. |
cooldownPeriodInSeconds |
Nem támogatott az OnContainerExit életciklus számára. |
Tároló mintavételei
A konténerszondák lehetővé teszik a munkamenet-tárolók állapotának ellenőrzését, hogy a készlet észlelhesse a nem megfelelő munkameneteket, és lecserélhesse őket a célállapot egészségének readySessionInstances megőrzése érdekében.
A munkamenetkészletek támogatják a Liveness és Startup próbákat. A mintavétel működésével kapcsolatos további információkért lásd: Egészségügyi mintavételek Azure Container Apps.
Munkamenetkészlet létrehozásakor vagy frissítésekor adja meg a mintavételeket a következőben properties.customContainerTemplate.containers: . A teljes kérelem törzsséma a SessionPools Create or Update API-referenciában található. Az alábbi példa egy részleges konfigurációt mutat be mintavételdefiníciókkal:
{
"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
}
}
}
Az egyéni tároló-munkamenetkészletekhez számítási feladatprofil-kompatibilis Azure Container Apps környezet szükséges. Ha nincs környezete, hozzon létre egyet a az containerapp env create -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP> --location <LOCATION> parancs segítségével.
A az containerapp sessionpool create parancs használatával hozzon létre egy egyéni tárolói munkamenetkészletet.
Az alábbi példa létrehoz egy my-session-pool elnevezésű munkamenetkészletet egy egyéni myregistry.azurecr.io/my-container-image:1.0 konténerképpel.
A kérés elküldése előtt cserélje le a zárójelek közötti <> helyőrzőket a munkamenetkészlet és a munkamenet-azonosító megfelelő értékeire.
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>
Ez a parancs létrehoz egy munkamenetkészletet a következő beállításokkal:
| Paraméter | Érték | Description |
|---|---|---|
--name |
my-session-pool |
A munkamenet-készlet neve. |
--resource-group |
my-resource-group |
A munkamenetkészletet tartalmazó erőforráscsoport. |
--environment |
my-environment |
A tárolóalkalmazás környezetének neve vagy erőforrás-azonosítója. |
--container-type |
CustomContainer |
A munkamenetkészlet tárolótípusa. Egyéni tároló munkamenetekhez kell lennie CustomContainer . |
--image |
myregistry.azurecr.io/my-container-image:1.0 |
A munkamenet poolhoz használandó konténerkép. |
--registry-server |
myregistry.azurecr.io |
A tárolóregisztrációs szerver állomásneve. |
--registry-username |
my-username |
A tárolóregisztrációs adatbázisba való bejelentkezéshez használt felhasználónév. |
--registry-password |
my-password |
A tárolóregisztrációs adatbázisba való bejelentkezéshez szükséges jelszó. |
--cpu |
0.25 |
A szükséges processzor magok száma. |
--memory |
0.5Gi |
A szükséges memória. |
--target-port |
80 |
A bejövő forgalomhoz használt munkamenet-port. |
--cooldown-period |
300 |
A munkamenet leállítása előtt eltelt másodpercek száma, amíg a munkamenet inaktív lehet. A tétlenségi időszak minden alkalommal visszaállításra kerül, amikor a munkamenet API hívás történik. Az értéknek 300 és 3600 között kell lennie. |
--network-status |
EgressDisabled |
Megadja, hogy engedélyezett-e a kimenő hálózati forgalom a munkamenetből. Az érvényes értékek az (alapértelmezett) és a EgressDisabledEgressEnabled. |
--max-sessions |
10 |
Az egyidejűleg kijelölhető munkamenetek maximális száma. |
--ready-sessions |
5 |
A munkamenetkészletben folyamatosan készen álló munkamenetek célszáma. Növelje ezt a számot, ha a munkamenetek gyorsabban vannak lefoglalva, mint a készlet feltöltése. |
--env-vars |
"key1=value1" "key2=value2" |
A tárolóban beállítandó környezeti változók. |
--location |
"Supported Location" |
A munkamenetkészlet helye. |
A munkamenetkészlet frissítéséhez használja a az containerapp sessionpool update parancsot.