Sdílet prostřednictvím


Přehled dynamických relací Azure Container Apps

Dynamické relace Azure Container Apps poskytují rychlý přístup k zabezpečeným prostředím v izolovaném prostoru (sandbox), která jsou ideální pro spouštění kódu nebo aplikací, které vyžadují silnou izolaci od jiných úloh.

Relace mají následující atributy:

  • Silná izolace: Relace jsou navzájem izolované a z hostitelského prostředí. Každá relace běží ve vlastním sandboxu Hyper-V, který poskytuje zabezpečení a izolaci na podnikové úrovni. Volitelně můžete povolit izolaci sítě pro další vylepšení zabezpečení.

  • Jednoduchý přístup: K relacím se přistupuje prostřednictvím rozhraní REST API. Jedinečný identifikátor označuje každou relaci. Pokud relace s daným identifikátorem neexistuje, nová relace se automaticky přidělí.

  • Plně spravovaná: Platforma plně spravuje životní cyklus relace. Relace se automaticky vyčistí, když se už nepoužívají.

  • Rychlé spuštění: Nová relace je přidělena v milisekundách. Rychlé starty se dosahuje automatickým udržováním fondu připravených, ale nepřidělených relací.

  • Škálovatelné: Relace se můžou spouštět ve velkém měřítku. Souběžně můžete spouštět stovky nebo tisíce relací.

Poznámka:

Dynamické relace Azure Container Apps jsou aktuálně ve verzi Preview.

Typy relací

Azure Container Apps podporuje dva typy relací:

Typ Popis Model fakturace
Interpret kódu Interpret plně spravovaného kódu Na relaci (spotřeba)
Vlastní kontejner Používání vlastního kontejneru Vyhrazený plán Container Apps

Interpret kódu

Relace interpretu kódu umožňují spouštět kód v sandboxu, který je předinstalovaný s oblíbenými knihovnami. Jsou ideální pro spouštění nedůvěryhodného kódu, jako je například kód poskytovaný uživateli vaší aplikace nebo kódu vygenerovaný velkým jazykovým modelem (LLM). Přečtěte si další informace o relacích interpreta kódu.

Vlastní kontejner

Vlastní relace kontejneru umožňují spouštět vlastní image kontejnerů v zabezpečených izolovaných sandboxech. Můžete je použít ke spuštění vlastního interpretu kódu pro jazyk, který není mimo provoz podporovaný, nebo ke spouštění úloh, které vyžadují silnou izolaci. Přečtěte si další informace o vlastních relacích kontejneru.

Koncepty

Klíčové koncepty v dynamických relacích Azure Container Apps jsou fondy relací a relace.

Fondy relací

Aby služba Azure Container Apps poskytla časy přidělení dílčích relací, udržuje fond připravených, ale nepřidělených relací. Když odešlete žádost do nové relace, platforma vám přidělí relaci z fondu. Při přidělování relací platforma automaticky doplní fond, aby zachoval konstantní počet připravených relací.

Fondy můžete nakonfigurovat tak, aby nastavily maximální počet relací, které lze přidělit souběžně prostřednictvím maxConcurrentSessions vlastnosti. Před odstraněním cooldownPeriodInSeconds relace můžete nastavit dobu čekání z posledního požadavku. U vlastních relací kontejneru můžete také zadat image a nastavení kontejneru, které se mají použít pro relace ve fondu, včetně cílového počtu relací, které mají být ve fondu připravené prostřednictvím readySessionInstances.

Přednášky

Relace je prostředí v izolovaném prostoru (sandbox), ve kterém běží váš kód nebo aplikace. Každá relace je izolovaná od ostatních relací a z hostitelského prostředí s sandboxem Hyper-V . Volitelně můžete povolit izolaci sítě pro další vylepšení zabezpečení.

Identifikátory relací

Při interakci s relacemi ve fondu musíte definovat identifikátor relace pro správu každé relace. Identifikátor relace je řetězec volného tvaru, což znamená, že ho můžete definovat jakýmkoli způsobem, který vyhovuje potřebám vaší aplikace. Tento identifikátor je klíčovým prvkem při určování chování relace:

  • Opakované použití existujících relací: Tato relace se znovu použije, pokud už existuje spuštěná relace, která odpovídá identifikátoru.
  • Přidělení nových relací: Pokud žádná spuštěná relace neodpovídá identifikátoru, nová relace se automaticky přidělí z fondu.

Identifikátor relace je řetězec, který definujete 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.

Identifikátor musí být řetězec, který má délku 4 až 128 znaků a může obsahovat pouze alfanumerické znaky a speciální znaky z tohoto seznamu: |, , , &$-%^, ){}(#];[<a .>

Identifikátor relace předáte v parametru dotazu pojmenovaném identifier v adrese URL, když odešlete požadavek na relaci.

Pro relace interpreta kódu můžete také použít integraci s architekturou LLM. Architektura 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í ve fondu relací.

Ochrana identifikátorů relací

Identifikátor relace je citlivé informace, které vyžadují zabezpečený proces při vytváření a správě jeho hodnoty. Aby byla tato hodnota chráněná, musí vaše aplikace zajistit, aby každý uživatel nebo tenant měl přístup jenom k vlastním relacím.

Konkrétní strategie, které brání zneužití identifikátorů relací, se liší v závislosti na návrhu a architektuře vaší aplikace. Vaše aplikace ale musí mít vždy úplnou kontrolu nad vytvářením a používáním identifikátorů relací, aby uživatel se zlými úmysly neměl přístup k relaci jiného uživatele.

Mezi příklady strategií patří:

  • Jedna relace na uživatele: Pokud vaše aplikace používá jednu relaci na uživatele, musí být každý uživatel bezpečně ověřen a aplikace musí používat jedinečný identifikátor relace pro každého přihlášeného uživatele.
  • Jedna relace na konverzaci agenta: Pokud vaše aplikace používá jednu relaci na konverzaci agenta AI, ujistěte se, že vaše aplikace používá jedinečný identifikátor relace pro každou konverzaci, kterou nemůže koncový uživatel upravovat.

Důležité

Selhání zabezpečeného přístupu k relacím může mít za následek zneužití nebo neoprávněný přístup k datům uloženým v relacích uživatelů.

Ověřování

Ověřování se zpracovává pomocí tokenů Microsoft Entra (dříve Azure Active Directory). Platné tokeny Microsoft Entra se generují identitou, která patří do rolí exekutoru relací Azure ContainerApps a přispěvatele ve fondu relací.

K přiřazení rolí identitě použijte následující příkazy Azure CLI:

az role assignment create \
    --role "Azure ContainerApps Session Executor" \
    --assignee <PRINCIPAL_ID> \
    --scope <SESSION_POOL_RESOURCE_ID>

az role assignment create \
    --role "Contributor" \
    --assignee <PRINCIPAL_ID> \
    --scope <SESSION_POOL_RESOURCE_ID>

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 s potřebnými přiřazeními rolí ve 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 identity cílové skupiny (aud) s hodnotou https://dynamicsessions.io.

Pokud chcete vygenerovat token pomocí Azure CLI, spusťte následující příkaz:

az account get-access-token --resource https://dynamicsessions.io

Důležité

Platný token lze použít k vytvoření a přístupu k jakékoli relaci ve fondu. Zabezpečte tokeny a nesdílejte je s nedůvěryhodnými stranami. Koncoví uživatelé by měli přistupovat k relacím prostřednictvím vaší aplikace, ne přímo.

Životní cyklus

Modul runtime Container Apps automaticky spravuje životní cyklus pro každou relaci ve fondu relací.

  • Čeká na vyřízení: Když se relace spouští, je ve stavu čekání. Doba, po kterou relace stráví ve stavu čekání, závisí na imagi kontejneru a nastavení, která zadáte pro fond relací. Do fondu připravených relací se nepřidá čekající relace.

  • Připraveno: Jakmile se relace spustí a je připravená, přidá se do fondu. Relace je k dispozici v tomto stavu pro přidělení. U vlastních relací kontejneru můžete určit cílový počet připravených relací, které se mají zachovat ve fondu. Pokud jsou relace přiděleny rychleji, než je fond doplňován, zvyšte toto číslo.

  • Přiděleno: Když odešlete požadavek na neběžnou relaci, fond poskytne novou relaci a umístí ji do přiděleného stavu. Další požadavky se stejným identifikátorem relace se směrují do stejné relace.

  • Odstranění: Když relace přestane přijímat požadavky v době definované cooldownPeriodInSeconds nastavením, relace a její sandbox Hyper-V se zcela a bezpečně odstraní.

Zabezpečení

Dynamické relace Azure Container Apps jsou vytvořené tak, aby spouštěly nedůvěryhodný kód a aplikace v zabezpečeném a izolovaném prostředí. Relace jsou od sebe izolované, ale uživatelé relace mají k dispozici cokoli v rámci jedné relace, včetně souborů a proměnných prostředí. Citlivá data byste měli nakonfigurovat nebo nahrát do relace jenom v případě, že důvěřujete uživatelům relace.

Omezení verze Preview

Dynamické relace Azure Container Apps jsou aktuálně ve verzi Preview. Platí následující omezení:

  • Je k dispozici pouze v následujících oblastech:

    Oblast Interpret kódu Vlastní kontejner
    Východní Asie
    USA – východ
    Německo – středozápad
    Itálie - sever
    Střední Polsko
    Severní střed USA -
    Severní Evropa
    Západní USA 2
  • Protokolování se nepodporuje. Vaše aplikace může protokolovat požadavky do rozhraní API pro správu fondu relací a jeho odpovědí.

Další kroky