Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Dynamické relace Azure Container Apps poskytují rychlý a škálovatelný přístup ke interpretu kódu. Každá relace interpretu kódu je plně izolovaná hranicí Hyper-V a je navržená tak, aby spouštěla nedůvěryhodný kód.
Používá se pro relace interpretu kódu.
Sezení interpreta kódu jsou ideální pro scénáře, když je potřeba spouštět kód, který může být potenciálně škodlivý nebo ohrozit hostitelský systém či poškodit jiné uživatele, například:
- Kód vygenerovaný velkým jazykovým modelem (LLM).
- Kód odeslaný koncovým uživatelem ve webové nebo saaS aplikaci
Pro oblíbené architektury LLM, jako jsou LangChain, LlamaIndex a Sémantic Kernel, můžete použít nástroje a moduly plug-in k integraci aplikací AI s relacemi interpretu kódu.
Vaše aplikace se také můžou integrovat s relací interpretu kódu pomocí rozhraní REST API. Rozhraní API umožňuje:
Spusťte kód v relaci a načtěte výsledky.
Nahrajte a stáhněte soubory do relace a z ní.
Můžete nahrát a stáhnout spustitelné soubory kódu nebo datové soubory, které může váš kód zpracovat.
Předdefinované relace interpreta kódu podporují nejběžnější scénáře spouštění kódu, aniž byste museli spravovat infrastrukturu nebo kontejnery.
Pokud potřebujete úplnou kontrolu nad prostředím spouštění kódu nebo máte jiný scénář, který vyžaduje izolované sandboxy, můžete použít vlastní relace interpretu kódu.
Seskupení relací interpretu kódu
Pokud chcete použít relace interpreta kódu, potřebujete prostředek Azure s názvem fond relací , který definuje konfiguraci relací interpretu kódu.
V rámci fondu relací můžete specifikovat nastavení, jako je maximální počet současných relací a jak dlouho může být relace nečinná, než je ukončena.
Fond relací můžete vytvořit pomocí webu Azure Portal, Azure CLI nebo šablon Azure Resource Manageru. Po vytvoření fondu relací můžete pomocí API koncových bodů pro správu fondu spravovat a spouštět kód uvnitř relace.
Další informace o tom, jak vytvořit a nakonfigurovat fond relací, naleznete v tématu Použití fondů relací.
Provádění kódu v relaci
Po vytvoření fondu relací může vaše aplikace interagovat s relacemi ve fondu pomocí integrace s architekturou LLM nebo přímým použitím koncových bodů rozhraní API pro správu fondu.
Identifikátory relací
Důležité
Identifikátor relace je citlivá informace. Ke správě jeho hodnoty musíte použít zabezpečený proces. Součástí tohoto procesu je zajistit, aby vaše aplikace zajistila, že každý uživatel nebo tenant má přístup pouze k vlastním relacím.
Pokud se nepodaří zabezpečit přístup k relacím, může dojít ke zneužití nebo neoprávněnému přístupu k datům uloženým v relacích uživatelů. Další informace naleznete v tématu Identifikátory relací.
Při interakci s relacemi ve fondu použijete identifikátor relace k odkazování na každou relaci. Identifikátor relace je řetězec, který definujete jako jedinečný v rámci fondu relací. Pokud vytváříte webovou aplikaci, můžete použít ID uživatele. Pokud vytváříte chatovacího robota, můžete použít ID konverzace.
Pokud existuje spuštěná relace s identifikátorem, relace se znovu použije. Pokud neexistuje žádná spuštěná relace s identifikátorem, vytvoří se nová relace automaticky.
Ověřování
Ověřování se zpracovává prostřednictvím tokenů Microsoft Entra. Platné tokeny Microsoft Entra jsou generovány identitou, která náleží k rolím Azure ContainerApps Session Executor a Contributor v rámci session poolu.
Pokud používáte integraci architektury LLM, rozhraní za vás zpracovává generování a správu tokenů. Ujistěte se, že je aplikace nakonfigurovaná se spravovanou identitou, která má potřebná přiřazení rolí v rámci fondu relací.
Pokud používáte koncové body rozhraní API pro správu fondu přímo, musíte vygenerovat token a zahrnout ho do Authorization hlavičky požadavků HTTP. Kromě dříve zmíněných přiřazení rolí musí token obsahovat deklaraci cílové skupiny (aud), která má hodnotu https://dynamicsessions.io.
Další informace najdete v tématu Ověřování a autorizace.
Práce se soubory
Můžete nahrát a stáhnout soubory a zobrazit seznam všech souborů v relaci interpretu kódu.
Podporované znaky
Názvy souborů a cesty musí používat pouze následující podporované znaky:
- Velká a malá písmena:
A-Z,a-z. - Číslice:
0-9. - Speciální znaky:
-,_,,.,@,$,&,=,;,,,#,%,^,(,). (Cesty nesmějí obsahovat..) - Znaky Unicode: Zahrnuje čínské, japonské a další mezinárodní znaky.
Odeslání souboru
Pokud chcete nahrát soubor do relace, odešlete POST žádost do koncového files bodu v žádosti o data formuláře s více částmi. Zahrňte data souboru do textu požadavku. Soubor musí obsahovat název souboru.
Nahrané soubory se ukládají do systému souborů relace v /mnt/data adresáři.
Následující příklad ukazuje, jak nahrát soubor do relace.
Před odesláním požadavku nahraďte zástupné symboly mezi <> hranatými závorkami hodnotami, které jsou specifické pro váš požadavek.
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--
Stažení souboru
Pokud chcete stáhnout soubor z adresáře relace /mnt/data , odešlete GET do koncového files/{filename}/content bodu požadavek. Odpověď obsahuje data souboru.
Následující příklad ukazuje, jak formátovat GET požadavek na stažení souboru.
Před odesláním požadavku nahraďte zástupné symboly mezi <> hranatými závorkami hodnotami, které jsou specifické pro váš požadavek.
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>
Získání metadat souboru
Pokud chcete získat metadata pro soubor v adresáři relace /mnt/data, odešlete požadavek GET na koncový bod files/{filename}. Odpověď obsahuje vlastnosti souboru, jako je velikost a čas poslední změny.
Následující příklad ukazuje, jak formátovat GET požadavek na načtení metadat souboru.
Před odesláním požadavku nahraďte zástupné symboly mezi <> hranatými závorkami hodnotami, které jsou specifické pro váš požadavek.
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>
Zobrazení souborů
Pokud chcete zobrazit seznam souborů v adresáři relace /mnt/data, odešlete požadavek GET do koncového bodu files.
Následující příklad ukazuje, jak zobrazit seznam souborů v adresáři relace.
Před odesláním požadavku nahraďte zástupné symboly mezi <> hranatými závorkami hodnotami, které jsou specifické pro váš požadavek.
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>
Odpověď obsahuje seznam souborů v relaci.
Následující výpis ukazuje ukázku typu odpovědi, kterou můžete očekávat při vyžádání obsahu relace.
{
"$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"
}
}
]
}
Zabezpečení
Relace interpreta kódu jsou navržené tak, aby spouštěly nedůvěryhodný kód v izolovaných prostředích, aby vaše aplikace a data zůstaly chráněné.
Integrace architektury LLM
Místo přímého použití rozhraní API pro správu fondu relací můžete použít následující architektury LLM, které poskytují integraci s relacemi interpretu kódu.
| .NET Framework | Balíček | Návod |
|---|---|---|
| LangChain | Python: langchain-azure-dynamic-sessions |
Návod |
| LlamaIndex | Python: llama-index-tools-azure-code-interpreter |
Návod |
| Sémantické jádro | Python: semantic-kernel (verze 0.9.8-b1 nebo novější) |
Návod |
Koncové body rozhraní API pro správu
Pokud nepoužíváte integraci architektury LLM, můžete s fondem relací pracovat přímo pomocí koncových bodů rozhraní API pro správu.
Spustit kód v relaci
Pokud chcete spustit kód v relaci, odešlete POST do koncového executions bodu požadavek s kódem, který se má spustit v textu požadavku. Každé spuštění kódu je omezeno na maximální dobu 220 sekund.
Následující příklad vytiskne Hello, world! v Pythonu.
Před odesláním požadavku nahraďte zástupné symboly v hranatých závorkách <> příslušnými hodnotami pro váš fond relací a identifikátor relace.
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!')"
}
}
Pokud chcete relaci znovu použít, zadejte stejný identifikátor relace v následných požadavcích.
Nahrajte soubor do relace
Pokud chcete nahrát soubor do relace, odešlete POST žádost do koncového files bodu v žádosti o data formuláře s více částmi. Zahrňte data souboru do textu požadavku. Soubor musí obsahovat název souboru.
Nahrané soubory se ukládají do systému souborů relace v /mnt/data adresáři.
Před odesláním požadavku nahraďte zástupné symboly mezi <> hranatými závorkami hodnotami, které jsou specifické pro váš požadavek.
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--
Poznámka:
Limit nahrávání souborů je 128 MB. Pokud se tento limit překročí, může se zobrazit chyba HTTP 413.
Stažení souboru z relace
Pokud chcete stáhnout soubor z adresáře relace /mnt/data , odešlete GET do koncového files/{filename}/content bodu požadavek. Odpověď obsahuje data souboru.
Před odesláním požadavku nahraďte zástupné symboly mezi <> hranatými závorkami hodnotami, které jsou specifické pro váš požadavek.
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>
Získání metadat souboru
Pokud chcete získat metadata pro soubor v adresáři relace /mnt/data, odešlete požadavek na koncový bod files/{filename}. Odpověď obsahuje vlastnosti souboru, jako je velikost a čas poslední změny.
Před odesláním požadavku nahraďte zástupné symboly mezi <> hranatými závorkami hodnotami, které jsou specifické pro váš požadavek.
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>
Výpis souborů v relaci
Pokud chcete zobrazit seznam souborů v adresáři relace /mnt/data, odešlete požadavek GET do koncového bodu files.
Před odesláním požadavku nahraďte zástupné symboly mezi <> hranatými závorkami hodnotami, které jsou specifické pro váš požadavek.
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>
Odpověď obsahuje seznam souborů v relaci.
Následuje příklad typu odpovědi, kterou můžete očekávat při vyžádání obsahu relace.
{
"$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"
}
}
]
}
Předinstalované balíčky
Relace interpretu kódu Pythonu zahrnují oblíbené balíčky Pythonu, jako jsou NumPy, pandas a scikit-learn.
Pokud chcete vypsat seznam předinstalovaných balíčků, zavolejte executions koncový bod následujícím kódem.
Před odesláním požadavku nahraďte zástupné symboly mezi <> hranatými závorkami hodnotami, které jsou specifické pro váš požadavek.
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]"
}
}
Protokolování
Dostupné výstupy jsou výsledky, které vrátíte ze spuštění kódu, včetně stdout a stderr.
Pokud potřebujete sledování požadavků nebo odpovědí, zachyťte je během spuštění aplikace, která volá rozhraní API pro správu fondu relací (například zaznamenávejte ID požadavků, vstupy a odpovědi na hranici vaší aplikace).
Poznámka:
Sezení interpreta kódu nevydávají protokoly AppEnvSession do Log Analytics.
Metrics
Metriky využití a spouštění interpretu kódu se vrátí jako hlavičky odpovědi HTTP pro rozhraní API pro spouštění kódu. Tyto metriky se do Log Analytics nezapisují.
Zobrazení metrik
- Zavolejte rozhraní API pro kódové spuštění (
/executions). - Zkontrolujte hlavičky odpovědi HTTP pro metriky využití a spouštění.
Podrobnosti o rozhraní API pro vykonání kódu a koncových bodech najdete v Spuštění kódu v relaci a Správní koncové body API.
Fakturace
Relace interpreta kódu se účtují na základě doby trvání každé relace. Další informace najdete v tématu Fakturace.