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í.
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í.
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
U dynamických relací platí následující omezení:
Je k dispozici pouze v následujících oblastech:
Oblast Interpret kódu Vlastní kontejner Austrálie – východ ✔ ✔ USA – střed (EUAP) ✔ ✔ USA – východ 2 (EUAP) ✔ ✔ USA – východ ✔ ✔ Východní Asie ✔ ✔ Německo – středozápad ✔ ✔ Itálie - sever ✔ ✔ Severní střed USA ✔ - Střední Polsko ✔ ✔ Švýcarsko – sever ✔ ✔ Středozápad USA ✔ ✔ Západní USA 2 ✔ ✔