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.
Pooly relací umožňují přidělení relací během zlomku sekundy a řídí životní cyklus každé relace.
Běžné koncepty obou fondů
Proces vytvoření fondu se mírně liší podle toho, jestli vytváříte fond relací interpretu kódu nebo vlastní fond kontejnerů. Následující koncepty platí pro obojí.
Pokud chcete vytvořit fondy relací pomocí Azure CLI, ujistěte se, že máte nejnovější verze Azure CLI a rozšíření Azure Container Apps:
# Upgrade the Azure CLI
az upgrade
# Install or upgrade the Azure Container Apps extension
az extension add --name containerapp --upgrade --allow-preview true -y
Mezi běžné příkazy fondu relací patří:
az containerapp sessionpool createaz containerapp sessionpool showaz containerapp sessionpool listaz containerapp sessionpool updateaz containerapp sessionpool delete
Pomocí --help libovolného příkazu můžete zobrazit dostupné argumenty a podporované hodnoty.
Pokud chcete zkontrolovat stav fondu relací, použijte az containerapp sessionpool show příkaz:
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Při vytváření nebo aktualizaci fondu můžete nastavit maximální počet souběžných relací, dobu nečinnosti a to, jestli je pro relace povolený odchozí síťový provoz.
Důležité
Pokud povolíte výchozí přenos dat, bude mít kód spuštěný v relaci přístup k internetu. Buďte opatrní, pokud je kód nedůvěryhodný, protože se dá použít k provádění škodlivých aktivit, jako jsou útoky na dostupnost služby.
Důležité
Pokud se relace používá ke spuštění nedůvěryhodného kódu, nezahrnujte informace ani data, ke kterým nechcete, aby nedůvěryhodný kód přistupoval. Předpokládejme, že kód je škodlivý a má úplný přístup ke kontejneru, včetně jeho proměnných prostředí, tajných kódů a souborů.
Konfigurujte fond
Použijte az containerapp sessionpool create --help pro zobrazení nejnovějších argumentů rozhraní příkazového řádku pro konfiguraci fondu relací. Tato část se zaměřuje na pokročilé možnosti konfigurace, které platí pro různé verze rozhraní API.
Konfigurace životního cyklu relace
Při vytváření nebo aktualizaci fondu relací můžete nakonfigurovat způsob ukončení relací nastavením properties.dynamicPoolConfiguration.lifecycleConfiguration. Počínaje verzí 2025-01-01rozhraní API zvolte jeden ze dvou typů životního cyklu.
Úplnou specifikaci rozhraní API najdete ve specifikaci rozhraní API SessionPools.
Časový limit (výchozí)
S životním cyklem Timed se relace odstraní po určité době nečinnosti. Každý požadavek odeslaný do relace resetuje časovač odpočítávání a prodlužuje dobu relace před jejím ukončením o cooldownPeriodInSeconds.
Poznámka:
Timed podporuje se pro všechny typy fondů relací a funguje stejně jako executionType: Timed v předchozích verzích rozhraní API.
{
"dynamicPoolConfiguration": {
"lifecycleConfiguration": {
"cooldownPeriodInSeconds": 600,
"lifecycleType": "Timed"
}
}
}
| Vlastnictví | Description |
|---|---|
cooldownPeriodInSeconds |
Relaci se odstraní, pokud během tohoto období neexistují žádné požadavky. |
maxAlivePeriodInSeconds |
Není podporováno pro Timed životní cyklus. |
Koncový bod správy
Důležité
Identifikátor relace je citlivá informace, která vyžaduje zabezpečený proces, když vytvoříte a spravujete jeho hodnotu. 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.
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 části Identifikátory relací.
Všechny požadavky na koncový bod správy fondu musí obsahovat hlavičku Authorization s tokenem typu Bearer. Informace o ověřování pomocí rozhraní API pro správu fondů najdete v tématu Ověřování.
Většina požadavků rozhraní API také vyžaduje parametr řetězce dotazu identifier s ID relace. Toto jedinečné ID relace umožňuje vaší aplikaci pracovat s konkrétními relacemi. Operace v rámci celého fondu, jako je výpis relací, nevyžadují identifikátor. Další informace o identifikátorech relací najdete v tématu Identifikátory relací.
Ukládání obrázků do mezipaměti
Při vytvoření nebo aktualizaci fondu relací Azure Container Apps ukládá image kontejneru do mezipaměti ve fondu. Toto ukládání do mezipaměti pomáhá urychlit proces vytváření nových relací.
Žádné změny obrázku se automaticky neprojeví v relacích. Pokud chcete image aktualizovat, aktualizujte fond relací novou značkou image. Pro každou aktualizaci image použijte jedinečnou značku, abyste zajistili, že se nová image natáhne.
Fond relací pro interpret kódu
az containerapps sessionpool create Pomocí příkazu vytvořte fond. Následující příklad vytvoří fond relací pro interpretaci kódu Python s názvem my-session-pool. Před spuštěním příkazu nezapomeňte nahradit <RESOURCE_GROUP> názvem vaší skupiny prostředků.
az containerapp sessionpool create \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--location westus2 \
--container-type PythonLTS \
--max-sessions 100 \
--cooldown-period 300 \
--network-status EgressDisabled
Při vytváření fondu relací můžete definovat následující nastavení:
| Setting | Description |
|---|---|
--container-type |
Typ interpretu kódu, který se má použít. Mezi podporované hodnoty patří PythonLTS, NodeLTS, Shella CustomContainer. |
--max-sessions |
Maximální povolený počet přidělených sezení současně. Maximální hodnota je 600. |
--cooldown-period |
Počet povolených nečinných sekund před ukončením. Období nečinnosti se resetuje při každém volání rozhraní API relace. Povolený rozsah je mezi 300 a 3600. |
--network-status |
Určuje, jestli je odchozí síťový provoz z relace povolený. Platné hodnoty jsou EgressDisabled (výchozí) a EgressEnabled. |
Koncový bod správy interpreta kódu
Pokud chcete používat relace interpretu kódu prostřednictvím integrací s architekturou LLM nebo voláním koncových bodů API pro správu přímo, potřebujete koncový bod API pro správu daného fondu.
Koncový bod je ve formátu https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>.
Pokud chcete načíst koncový bod rozhraní API pro správu pro fond relací, podívejte se na předchozí část s názvem "Obecná sekce" pro příklad příkazu.
Pro správu relací v poolu jsou k dispozici následující koncové body:
| Cesta ke koncovému bodu | Metoda | Description |
|---|---|---|
code/execute |
POST |
Spusťte kód v relaci. |
files/upload |
POST |
Nahrajte soubor do relace. |
files/content/{filename} |
GET |
Stáhněte si soubor z relace. |
files |
GET |
Vypište soubory v sezení. |
.management/getSession |
POST |
Získejte podrobnosti o konkrétní relaci. |
.management/listSessions |
POST |
Zobrazit všechny relace v rámci fondu pomocí stránkování. |
Úplnou adresu URL pro každý koncový bod vytvoříte zřetězením koncového bodu rozhraní API pro správu fondu s cestou koncového bodu. Řetězec dotazu musí obsahovat identifier parametr obsahující identifikátor relace a api-version parametr s hodnotou 2024-02-02-preview. Verze rozhraní API se můžou změnit, takže před použitím v produkčním prostředí vždy ověřte nejnovější verzi v dokumentaci k rozhraní REST API.
Příklad: {sessionManagementEndpoint}/code/execute?api-version=2024-02-02-preview&identifier=<IDENTIFIER>
getSession a listSessions koncové body naleznete v části Načtení informací o relaci pro podrobnosti o žádosti a odpovědi.
Referenční informace k rozhraní REST API najdete v tématu Rozhraní API roviny dat Služby Container Apps a přehled operací roviny dat Container Apps.
Vlastní pool relací pro kontejnery
Pokud chcete vytvořit vlastní fond relací pro kontejnery, musíte poskytnout obraz kontejneru a nastavení konfigurace fondu.
Každou relaci vyvoláte nebo komunikujete pomocí požadavků HTTP. Vlastní kontejner musí vystavit server HTTP na portu, který zadáte, aby na tyto požadavky reagoval.
Následující funkce platí jenom pro vlastní pooly relací kontejnerů.
Vlastní koncový bod správy kontejnerů
Pro vlastní fondy relací kontejnerů získejte koncový bod správy z portálu Azure nebo výstupu Azure CLI. Koncový bod se vrátí jako poolManagementEndpoint.
Koncový bod je ve formátu https://<SESSION_POOL_NAME>.<ENVIRONMENT_ID>.<REGION>.azurecontainerapps.io.
Vlastní fondy kontejnerů podporují stejné koncové body správy jako fondy interpretů kódu a vlastní koncové body aplikace, které definujete:
| Cesta ke koncovému bodu | Metoda | Description |
|---|---|---|
* (vlastní cesty) |
POST, GET |
Vlastní koncové body definované vaší aplikací kontejneru |
.management/getSession |
POST |
Získejte podrobnosti o konkrétní relaci. |
.management/listSessions |
POST |
Zobrazit všechny relace v rámci fondu pomocí stránkování. |
getSession a listSessions koncové body naleznete v části Načtení informací o relaci pro podrobnosti o žádosti a odpovědi.
OnContainerExit
OnContainerExit Při životním cyklu zůstane relace aktivní, dokud se kontejner sám nedokončí nebo nedosáhne maximální doby života.
{
"dynamicPoolConfiguration": {
"lifecycleConfiguration": {
"maxAlivePeriodInSeconds": 6000,
"lifecycleType": "OnContainerExit"
}
}
}
| Vlastnictví | Description |
|---|---|
maxAlivePeriodInSeconds |
Maximální doba, po kterou může relace zůstat aktivní, než ji odstraníte. |
cooldownPeriodInSeconds |
Není podporováno pro OnContainerExit životní cyklus. |
Sondy kontejnerů
Sondy kontejnerů umožňují definovat kontroly stavu kontejnerů relací, aby fond mohl detekovat relace, které nejsou v pořádku, a nahradit je, aby byl readySessionInstances cíl v pořádku.
Pooly relací podporují kontroly Liveness a Startup. Další informace o chování sondy najdete v tématu Health probes in Azure Container Apps.
Při vytváření nebo aktualizaci fondu relací zadejte sondy v properties.customContainerTemplate.containers. Kompletní schéma těla požadavku najdete v referenční dokumentaci rozhraní API pro vytvoření nebo aktualizaci SessionPools. Následující příklad ukazuje částečnou konfiguraci s definicemi sondy:
{
"properties": {
"customContainerTemplate": {
"containers": [
{
"name": "my-session-container",
"image": "myregistry.azurecr.io/my-session-image:latest",
"probes": [
{
"type": "Liveness",
"httpGet": {
"path": "/health",
"port": 8080
},
"periodSeconds": 10,
"failureThreshold": 3
},
{
"type": "Startup",
"httpGet": {
"path": "/ready",
"port": 8080
},
"periodSeconds": 5,
"failureThreshold": 30
}
]
}
]
},
"dynamicPoolConfiguration": {
"readySessionInstances": 5
}
}
}
- Azure CLI
- portál Azure
- Azure Resource Manager
Vlastní fondy relací kontejnerů vyžadují prostředí Azure Container Apps s povolenými profily úloh. Pokud prostředí nemáte, vytvořte ho az containerapp env create -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP> --location <LOCATION> pomocí příkazu.
Pomocí příkazu az containerapp sessionpool create vytvořte vlastní fond relací kontejneru.
Následující příklad vytvoří pool sezení s názvem my-session-pool a vlastním kontejnerovým image myregistry.azurecr.io/my-container-image:1.0.
Před odesláním požadavku nahraďte zástupné symboly mezi hranatými závorkami <> příslušnými hodnotami pro váš fond relací a identifikátor relace.
az containerapp sessionpool create \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--environment <ENVIRONMENT> \
--registry-server myregistry.azurecr.io \
--registry-username <USER_NAME> \
--registry-password <PASSWORD> \
--container-type CustomContainer \
--image myregistry.azurecr.io/my-container-image:1.0 \
--cpu 0.25 --memory 0.5Gi \
--target-port 80 \
--cooldown-period 300 \
--network-status EgressDisabled \
--max-sessions 10 \
--ready-sessions 5 \
--env-vars "key1=value1" "key2=value2" \
--location <LOCATION>
Tento příkaz vytvoří fond relací s následujícím nastavením:
| Parameter | Hodnota | Description |
|---|---|---|
--name |
my-session-pool |
Název fondu relací. |
--resource-group |
my-resource-group |
Skupina prostředků, která obsahuje fond relací. |
--environment |
my-environment |
Název prostředí aplikace kontejneru nebo ID prostředku. |
--container-type |
CustomContainer |
Typ kontejneru fondu relací. Musí to být CustomContainer pro vlastní relace kontejneru. |
--image |
myregistry.azurecr.io/my-container-image:1.0 |
Obraz kontejneru, který se má použít pro fond relací. |
--registry-server |
myregistry.azurecr.io |
Název hostitele serveru registru kontejneru. |
--registry-username |
my-username |
Uživatelské jméno pro přihlášení k registru kontejneru. |
--registry-password |
my-password |
Heslo pro přihlášení k registru kontejneru. |
--cpu |
0.25 |
Požadovaný počet jader procesoru (CPU). |
--memory |
0.5Gi |
Požadovaná paměť. |
--target-port |
80 |
Port relace používaný pro příchozí přenos dat. |
--cooldown-period |
300 |
Počet sekund, po které může být relace nečinná, než je relace ukončena. Období nečinnosti se resetuje při každém volání rozhraní API relace. Hodnota musí být mezi 300 a 3600. |
--network-status |
EgressDisabled |
Určuje, jestli je odchozí síťový provoz z relace povolený. Platné hodnoty jsou EgressDisabled (výchozí) a EgressEnabled. |
--max-sessions |
10 |
Maximální počet relací, které lze přidělit současně. |
--ready-sessions |
5 |
Cílový počet relací, které jsou neustále připravené ve fondu relací. Zvyšte toto číslo, pokud jsou relace přidělovány rychleji než je fond doplňován. |
--env-vars |
"key1=value1" "key2=value2" |
Proměnné prostředí, které se mají nastavit v kontejneru. |
--location |
"Supported Location" |
Umístění fondu relací. |
Pokud chcete aktualizovat fond relací, použijte az containerapp sessionpool update příkaz.