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.
Az Azure Container Apps dinamikus munkamenetei gyors és méretezhető hozzáférést biztosítanak egy kódértelmezőhöz. Minden kódértelmező munkamenetet egy Hyper-V-határ különít el teljesen, és nem megbízható kód futtatására lett tervezve.
Kódértelmező-munkamenetek használata
A kódértelmezők munkamenetei ideálisak olyan helyzetekben, amikor olyan kódot kell futtatnia, amely potenciálisan rosszindulatú, vagy kárt okozhat a gazdarendszerben vagy más felhasználókban, például:
- Nagy nyelvi modell (LLM) által létrehozott kód.
- Egy web- vagy SaaS-alkalmazás végfelhasználója által küldött kód.
Az olyan népszerű LLM-keretrendszerek esetében, mint a LangChain, a LlamaIndex és a Szemantic Kernel, eszközökkel és beépülő modulokkal integrálhatja az AI-alkalmazásokat a kódértelmezési munkamenetekkel.
Az alkalmazások REST API-val is integrálhatók a kódértelmezéssel. Az API lehetővé teszi, hogy:
Futtassa a kódot egy munkamenetben, és kérje le az eredményeket.
Fájlok feltöltése és letöltése a munkamenetbe és onnan.
Feltöltheti és letöltheti a kód által feldolgozható végrehajtható kódfájlokat vagy adatfájlokat.
A beépített kódértelmező-munkamenetek támogatják a leggyakoribb kódvégrehajtási forgatókönyveket anélkül, hogy az infrastruktúrát vagy a tárolókat kellene kezelnie.
Ha teljes körű vezérlésre van szüksége a kódvégrehajtási környezet felett, vagy egy másik, elkülönített tesztkörnyezetet igénylő forgatókönyvvel rendelkezik, használhat egyéni kódértelmező-munkameneteket.
Kódértelmező munkamenetkészlete
A kódértelmező-munkamenetek használatához szükség van egy Azure-erőforrásra, egy munkamenetkészletre , amely meghatározza a kódértelmező-munkamenetek konfigurációját.
A munkamenet-készletben megadhatja a beállításokat, például az egyidejű munkamenetek maximális számát, valamint azt, hogy egy munkamenet mennyi ideig tétlen lehet a munkamenet leállítása előtt.
Munkamenetkészletet az Azure Portal, az Azure CLI vagy az Azure Resource Manager sablonjaival hozhat létre. A munkamenetkészlet létrehozása után a készlet felügyeleti API-végpontjaival kezelheti és futtathatja a kódot egy munkameneten belül.
A munkamenetkészletek létrehozásáról és konfigurálásáról további információt a Munkamenetkészletek használata című témakörben talál.
Kódvégrehajtás munkamenetben
A munkamenet-készlet létrehozása után az alkalmazás az LLM-keretrendszerrel való integrációval vagy a készlet felügyeleti API-végpontjaival közvetlenül kommunikálhat a készlet munkameneteivel.
Munkamenet-azonosítók
Fontos
A munkamenet-azonosító bizalmas információ. Az érték kezeléséhez biztonságos folyamatot kell használnia. Ennek a folyamatnak az a része, hogy az alkalmazás biztosítsa, 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.
Amikor egy készlet munkameneteivel lép kapcsolatba, egy munkamenet-azonosítóval hivatkozik az egyes munkamenetekre. A munkamenet-azonosító egy olyan sztring, amelyet a munkamenetkészleten belül egyediként határoz meg. Ha webalkalmazást készít, használhatja a felhasználó azonosítóját. Ha csevegőrobotot készít, használhatja a beszélgetés azonosítóját.
Ha van egy futó munkamenet az azonosítóval, a rendszer újra felhasználja a munkamenetet. Ha nincs futó munkamenet az azonosítóval, a rendszer automatikusan létrehoz egy új munkamenetet.
Hitelesítés
A hitelesítés a Microsoft Entra-jogkivonatokon keresztül történik. Az érvényes Microsoft Entra-jogkivonatokat a munkamenet-készlet Azure ContainerApps-Munkamenet-végrehajtó és Közreműködő-szerepköreihez tartozó identitások hozzák létre.
Ha LLM-keretrendszer-integrációt használ, a keretrendszer kezeli a tokenek létrehozását és kezelését. Győződjön meg arról, hogy az alkalmazás olyan felügyelt identitással van konfigurálva, amely rendelkezik a szükséges szerepkör-hozzárendelésekkel a munkamenetkészleten.
Ha közvetlenül a hozzáférési szint felügyeleti API-végpontjait használja, létre kell hoznia egy jogkivonatot, és bele kell foglalnia a Authorization HTTP-kérések fejlécében. A korábban említett szerepkör-hozzárendeléseken kívül a jogkivonatnak tartalmaznia kell egy célközönségi (aud) jogcímet, amely rendelkezik az értékkel https://dynamicsessions.io.
További információ: Hitelesítés és engedélyezés.
Fájlokkal végzett munka
Feltölthet és letölthet fájlokat, és listázhatja az összes fájlt egy kódértelmező munkamenetben.
Támogatott karakterek
A fájlneveknek és elérési utaknak csak a következő támogatott karaktereket kell használniuk:
- Nagybetűk és kisbetűk:
A-Z,a-z. - Számjegyek:
0-9. - Speciális karakterek:
-,_,,.,@,$,&,=,;,, ,#,%,^,(). (Az elérési utak nem tartalmazhatnak..) - Unicode-karakterek: Kínai, japán és egyéb nemzetközi karaktereket tartalmaz.
Fájl feltöltése
Ha egy fájlt fel szeretne tölteni egy munkamenetbe, küldjön egy kérést POST a files végpontnak egy többrészes űrlapadat-kérelemben. Helyezze el a fájl adatait a kérelem törzsében. A fájlnak tartalmaznia kell egy fájlnevet.
A feltöltött fájlokat a rendszer a munkamenet fájlrendszerében tárolja a /mnt/data címtárban.
Az alábbi példa bemutatja, hogyan tölthet fel fájlokat egy munkamenetbe.
A kérés elküldése előtt cserélje le a zárójelek közötti helyőrzőket a <> kérelemre jellemző értékekre.
POST https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Authorization: Bearer <TOKEN>
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="<FILE_NAME_AND_EXTENSION>"
Content-Type: application/octet-stream
(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Fájl letöltése
Ha le szeretne tölteni egy fájlt egy munkamenet könyvtárából /mnt/data , küldjön egy kérést GET a files/{filename}/content végpontnak. A válasz tartalmazza a fájladatokat.
Az alábbi példa bemutatja, hogyan formázhat fájlletöltési GET kérelmet.
A kérés elküldése előtt cserélje le a zárójelek közötti helyőrzőket a <> kérelemre jellemző értékekre.
GET https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files/<FILE_NAME_AND_EXTENSION>/content?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Authorization: Bearer <TOKEN>
Fájl metaadatainak beolvasása
A munkamenet /mnt/data könyvtárában lévő fájlok metaadatainak lekéréséhez küldjön egy kérést GET a files/{filename} végpontnak. A válasz fájltulajdonságokat tartalmaz, például a méretet és az utolsó módosítás időpontját.
Az alábbi példa bemutatja, hogyan formázhat egy kérést GET a fájl metaadatainak lekéréséhez.
A kérés elküldése előtt cserélje le a zárójelek közötti helyőrzőket a <> kérelemre jellemző értékekre.
GET https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files/<FILE_NAME_AND_EXTENSION>?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Authorization: Bearer <TOKEN>
Fájlok listázása
A munkamenet /mnt/data könyvtárában lévő fájlok listázásához küldjön egy kérést GET a files végpontnak.
Az alábbi példa bemutatja, hogyan listázhatja a munkamenet könyvtárában lévő fájlokat.
A kérés elküldése előtt cserélje le a zárójelek közötti helyőrzőket a <> kérelemre jellemző értékekre.
GET https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Authorization: Bearer <TOKEN>
A válasz tartalmazza a munkamenetben lévő fájlok listáját.
Az alábbi lista a munkamenet tartalmának lekérésekor várható válasz típusát mutatja be.
{
"$id": "1",
"value": [
{
"$id": "2",
"properties": {
"$id": "3",
"filename": "test1.txt",
"size": 16,
"lastModifiedTime": "2024-05-02T07:21:07.9922617Z"
}
},
{
"$id": "4",
"properties": {
"$id": "5",
"filename": "test2.txt",
"size": 17,
"lastModifiedTime": "2024-05-02T07:21:08.8802793Z"
}
}
]
}
Biztonság
A kódértelmezési munkamenetek úgy vannak kialakítva, hogy nem megbízható kódot futtasson izolált környezetekben, hogy az alkalmazások és az adatok védettek maradjanak.
LLM-keretrendszer-integrációk
A munkamenetkészlet-kezelési API közvetlen használata helyett használhatja a következő LLM-keretrendszereket, amelyek integrációt biztosítanak a kódértelmező munkamenetekkel.
| Keretrendszer | Csomag | Oktatóanyag |
|---|---|---|
| LangChain | Piton: langchain-azure-dynamic-sessions |
Bemutató |
| LlamaIndex | Piton: llama-index-tools-azure-code-interpreter |
Bemutató |
| Szemantikus kernel | Python: semantic-kernel (0.9.8-b1-es vagy újabb verzió) |
Bemutató |
Felügyeleti API-végpontok
Ha nem LLM-keretrendszer-integrációt használ, közvetlenül a felügyeleti API-végpontok használatával kezelheti a munkamenet-készletet.
Kód futtatása munkamenetben
A kód futtatásához egy munkamenetben küldjön egy POST kérést a executions végpontnak a futtatandó kóddal a kérés törzsében. Minden kódvégrehajtás legfeljebb 220 másodperc futásidejű lehet.
Az alábbi példa Pythonban nyomtat Hello, world! .
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.
POST https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/executions?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Content-Type: application/json
Authorization: Bearer <TOKEN>
{
"properties": {
"codeInputType": "inline",
"executionType": "synchronous",
"code": "print('Hello, world!')"
}
}
A munkamenet újbóli felhasználásához adja meg ugyanazt a munkamenet-azonosítót a későbbi kérésekben.
Fájl feltöltése munkamenetbe
Ha egy fájlt fel szeretne tölteni egy munkamenetbe, küldjön egy kérést POST a files végpontnak egy többrészes űrlapadat-kérelemben. Helyezze el a fájl adatait a kérelem törzsében. A fájlnak tartalmaznia kell egy fájlnevet.
A feltöltött fájlokat a rendszer a munkamenet fájlrendszerében tárolja a /mnt/data címtárban.
A kérés elküldése előtt cserélje le a zárójelek közötti helyőrzőket a <> kérelemre jellemző értékekre.
POST https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Authorization: Bearer <TOKEN>
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="<FILE_NAME_AND_EXTENSION>"
Content-Type: application/octet-stream
(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Feljegyzés
A fájlfeltöltési korlát 128 MB. Ha túllépi ezt a korlátot, http 413-ra vonatkozó hibaüzenet jelenhet meg.
Fájl letöltése munkamenetből
Ha le szeretne tölteni egy fájlt egy munkamenet könyvtárából /mnt/data , küldjön egy kérést GET a files/{filename}/content végpontnak. A válasz tartalmazza a fájladatokat.
A kérés elküldése előtt cserélje le a zárójelek közötti helyőrzőket a <> kérelemre jellemző értékekre.
GET https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files/<FILE_NAME_AND_EXTENSION>/content?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Authorization: Bearer <TOKEN>
Fájl metaadatainak beolvasása
A munkamenet /mnt/data könyvtárában lévő fájlok metaadatainak lekéréséhez küldjön egy kérést GET a files/{filename} végpontnak. A válasz fájltulajdonságokat tartalmaz, például a méretet és az utolsó módosítás időpontját.
A kérés elküldése előtt cserélje le a zárójelek közötti helyőrzőket a <> kérelemre jellemző értékekre.
GET https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files/<FILE_NAME_AND_EXTENSION>?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Authorization: Bearer <TOKEN>
Fájlok listázása munkamenetben
A munkamenet /mnt/data könyvtárában lévő fájlok listázásához küldjön egy kérést GET a files végpontnak.
A kérés elküldése előtt cserélje le a zárójelek közötti helyőrzőket a <> kérelemre jellemző értékekre.
GET https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Authorization: Bearer <TOKEN>
A válasz a munkamenetben lévő fájlok listáját tartalmazza.
Az alábbiakban egy példa látható arra, hogy milyen típusú válaszra számíthat a munkamenet tartalmának lekérésekor.
{
"$id": "1",
"value": [
{
"$id": "2",
"properties": {
"$id": "3",
"filename": "test1.txt",
"size": 16,
"lastModifiedTime": "2024-05-02T07:21:07.9922617Z"
}
},
{
"$id": "4",
"properties": {
"$id": "5",
"filename": "test2.txt",
"size": 17,
"lastModifiedTime": "2024-05-02T07:21:08.8802793Z"
}
}
]
}
Munkamenet törlése
A Munkamenet törlése API használatával fejezhet be egy munkamenetet egy kódértelmező munkamenetkészletében.
A munkamenetek kiosztása után bármikor meghívhatja ezt az API-t, hogy manuálisan állítsa le. Ez akkor hasznos, ha:
- A munkamenetek élettartamának elérése előtt törölnie kell az erőforrásokat.
- A munkamenetkészlet elérte az egyidejű munkamenetek maximális korlátját, és kapacitást kell felszabadítania az új munkamenetekhez.
- Egy munkamenet befejezte a munkáját, és azonnal fel szeretné szabadítani az erőforrásokat.
API-referencia
kérelem
DELETE <POOL_MANAGEMENT_ENDPOINT>/session?api-version=2025-02-02-preview&identifier=<SessionIdentifier>
Paraméterek
| Paraméter | Típus | Szükséges | Description |
|---|---|---|---|
api-version |
karakterlánc | Igen | A használni kívánt API-verzió (például 2025-02-02-preview). |
identifier |
karakterlánc | Igen | A leállítandó munkamenet egyedi azonosítója. |
Examples
kérelem
DELETE <POOL_MANAGEMENT_ENDPOINT>/session?api-version=2025-02-02-preview&identifier=testSessionIdentifier
Válasz
HTTP/1.1 204 No Content
Munkamenet adatainak lekérése
A munkamenetkészlet lekérdezésével ellenőrizheti a munkamenet állapotát, lekérheti a lejárati adatokat, és listázhatja az összes aktív munkamenetet. Ez a funkció hasznos a munkamenet állapotának figyeléséhez, az erőforrás-használat nyomon követéséhez és az egyéni tisztítási munkafolyamatok implementálásához.
Egyetlen munkamenet lekérése
Egy adott munkamenet részleteinek lekéréséhez használja a get session API-t:
GET <POOL_MANAGEMENT_ENDPOINT>/session?identifier=<SessionIdentifier>&api-version=2025-02-02-preview
A getSession végpont visszaadja a munkamenet metaadatait, beleértve a munkamenet-azonosítót, az aktuális lejárati időt és a létrehozási időbélyeget.
SessionView válaszséma
| Field | Típus | Szükséges | Description |
|---|---|---|---|
identifier |
karakterlánc | Igen | A megadott munkamenet-azonosító |
etag |
karakterlánc | Igen | A munkamenet átlátszatlan verzióazonosítója. Ezt az azonosítót használhatja a változásészleléshez. |
expiresAt |
DateTime | Igen | UTC időbélyeg a munkamenet leállásakor |
createdAt |
DateTime | No | Munkamenet létrehozási időbélyeg |
lastAccessedAt |
DateTime | No | Az utolsó kérés időbélyege ebben a munkamenetben |
Példa kérésre és válaszra
curl -X GET "https://eastasia.dynamicsessions.io/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/sessionPools/mysessionpool/session?identifier=user-123&api-version=2025-02-02-preview" \
-H "Authorization: Bearer $TOKEN"
Sikeres válasz (HTTP 200):
{
"identifier": "user-123",
"etag": "a1b2c3d4",
"expiresAt": "2026-04-30T14:30:00Z",
"createdAt": "2026-04-30T13:30:00Z",
"lastAccessedAt": "2026-04-30T14:29:00Z"
}
Az összes munkamenet listázása egy készletben
A munkamenetkészlet összes munkamenetének listájának lekéréséhez használja a végpontot listSessions :
GET <POOL_MANAGEMENT_ENDPOINT>/listSessions?skip=0&api-version=2025-02-02-preview
Authorization: Bearer <TOKEN>
Pagination
A listavégpont támogatja a kihagyásalapú lapozást. Alapértelmezés szerint minden oldal legfeljebb 300 munkamenetet ad vissza. A lekérdezési skip paraméterrel navigálhat az eredmények között.
| Paraméter | Description |
|---|---|
skip |
Az elejétől kihagyandó munkamenetek száma (alapértelmezett: 0) |
nextLink |
Az eredmények következő oldalának teljes URL-címe (további találatok esetén a válasz tartalmazza) |
ApiCollectionEnvelope válaszséma
| Field | Típus | Description |
|---|---|---|
value |
SessionView[] | Munkamenet-objektumok tömbje |
nextLink |
karakterlánc | A következő oldal URL-címe (null értékű, ha nincs több találat) |
Példa lapozási ciklusra
POOL_URL="https://eastasia.dynamicsessions.io/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/sessionPools/mysessionpool"
next_url="$POOL_URL/.management/listSessions?skip=0&api-version=2025-02-02-preview"
while [ -n "$next_url" ]; do
response=$(curl -s "$next_url" \
-H "Authorization: Bearer $TOKEN")
echo "$response" | jq '.value[] | {identifier, expiresAt}'
next_url=$(echo "$response" | jq -r '.nextLink // empty')
done
Példa válasz (HTTP 200):
{
"value": [
{
"identifier": "user-123",
"etag": "a1b2c3d4",
"expiresAt": "2026-04-30T14:30:00Z",
"createdAt": "2026-04-30T13:30:00Z",
"lastAccessedAt": "2026-04-30T14:29:00Z"
},
{
"identifier": "user-456",
"etag": "e5f6a7b8",
"expiresAt": "2026-04-30T14:30:00Z",
"createdAt": "2026-04-30T13:30:00Z",
"lastAccessedAt": "2026-04-30T14:29:00Z"
}
],
"nextLink": "https://eastasia.dynamicsessions.io/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/sessionPools/mysessionpool/listSessions?skip=300"
}
Előre telepített csomagok
A Python-kódértelmező-munkamenetek olyan népszerű Python-csomagokat tartalmaznak, mint a NumPy, a pandas és a scikit-learn.
Az előre telepített csomagok listájának kimenetéhez hívja meg a executions végpontot az alábbi kóddal.
A kérés elküldése előtt cserélje le a zárójelek közötti helyőrzőket a <> kérelemre jellemző értékekre.
POST https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/executions?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Content-Type: application/json
Authorization: Bearer <TOKEN>
{
"properties": {
"codeInputType": "inline",
"executionType": "synchronous",
"code": "import pkg_resources\n[(d.project_name, d.version) for d in pkg_resources.working_set]"
}
}
Naplózás
Az elérhető kimenetek a kódvégrehajtásból visszaadott eredmények, beleértve stdout és stderr.
Ha kérés- vagy válaszkövetésre van szüksége, rögzítse azt abban az alkalmazásban, amely meghívja a munkamenetkészlet-kezelési API-t (például naplókérelmek azonosítóit, bemeneteit és válaszait az alkalmazás határán).
Feljegyzés
A kódértelmezők munkamenetei nem bocsátanak ki AppEnvSession-naplókat a Log Analyticsnek.
Mértékek
A kódértelmező használati és végrehajtási metrikái HTTP-válaszfejlécként jelennek meg a kódvégrehajtási API-hoz. Ezek a metrikák nem a Log Analyticsbe vannak írva.
Metrikák megtekintése
- Hívja meg a kódvégrehajtási API-t (
/executions). - Vizsgálja meg a HTTP-válaszfejléceket a használathoz és végrehajtási mutatókhoz.
A kódvégrehajtási API-val és a végpontokkal kapcsolatos részletekért lásd: Kód futtatása munkamenetben és Felügyeleti API-végpontokban.
Számlázás
A kódértelmező-munkamenetek számlázása az egyes munkamenetek időtartama alapján kerül számlázásra. További információ: Számlázás.