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í.

Relace ve fondu relací můžete interagovat odesláním požadavků HTTP. Každý fond relací má jedinečný koncový bod správy fondu.

Pro relace interpreta kódu můžete také použít integraci s architekturou LLM.

Identifikátory relací

Pokud chcete odeslat požadavek HTTP do relace, musíte v požadavku zadat identifikátor relace. Identifikátor relace předáte v parametru dotazu pojmenovaném identifier v adrese URL, když odešlete požadavek na relaci.

  • Pokud relace s identifikátorem již existuje, požadavek se odešle do existující relace.
  • Pokud relace s identifikátorem neexistuje, nová relace se před odesláním požadavku automaticky přidělí.

Snímek obrazovky s využitím fondu relací a relací

Formát identifikátoru

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.

Identifikátor relace je řetězec, který definujete jedinečný v rámci fondu relací. Pokud vytváříte webovou aplikaci, můžete jako identifikátor relace 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 .>

Ochrana identifikátorů relací

Identifikátor relace je citlivé informace, které musíte bezpečně spravovat. Vaše aplikace musí zajistit, aby každý uživatel nebo tenant měli 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í a autorizace

Při odesílání požadavků do relace pomocí rozhraní API pro správu fondu se ověřování zpracovává pomocí tokenů Microsoft Entra (dříve Azure Active Directory). K volání rozhraní API pro správu fondu mají oprávnění pouze tokeny Microsoft Entra z identity patřící do role Azure ContainerApps Session Executor ve fondu relací.

Pokud chcete přiřadit roli identitě, použijte následující příkaz Azure CLI:

az role assignment create \
    --role "Azure ContainerApps Session Executor" \
    --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. Nikdy by neměli mít přístup k tokenům používaným k ověřování požadavků na fond relací.

Ž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.

Ve výchozím nastavení se relacím brání v provádění odchozích síťových požadavků. Přístup k síti můžete řídit konfigurací nastavení stavu sítě ve fondu relací.

Kromě toho postupujte podle pokynů v části ověřování a autorizace, abyste měli jistotu, že k relacím mají přístup jenom oprávnění uživatelé, a v části ochrana identifikátorů relací zajistěte, aby identifikátory relací byly zabezpečené.

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

Další kroky