Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Baseny sesji zapewniają czasy alokacji sesji w podsekundach dla nowych pul sesji i są odpowiedzialne za zarządzanie oraz cykl życia każdej sesji.
Konfiguracja
Zachowanie pul sesji można kontrolować przy użyciu następujących parametrów dostępnych dla az containerapp sessionpool create.
| Przeznaczenie | Majątek | Description |
|---|---|---|
| Ustawianie maksymalnej liczby sesji | max-sessions |
Maksymalna liczba współbieżnych sesji dozwolonych w puli. Żądania, które pojawiają się po osiągnięciu maksymalnego limitu, skutkują zwróceniem 404 błędu serwera, wskazującego, że nie będą przydzielane więcej sesji do puli. |
| Czas trwania oczekiwania | cooldown-period |
Liczba sekund bezczynności sesji przed zakończeniem sesji. Okres bezczynności jest resetowany za każdym razem, gdy interfejs API sesji jest wywoływany. Wartość musi zawierać się między 300 i 3600. |
| Docelowa ilość sesji | ready-sessions |
Docelowa liczba sesji, które mają być gotowe w puli. |
Utwórz pulę
Proces tworzenia puli różni się nieco w zależności od tego, czy tworzysz pulę interpreterów kodu, czy niestandardową pulę kontenerów.
Pula interpreterów kodu
Aby utworzyć pulę sesji interpretera kodu przy użyciu interfejsu wiersza polecenia platformy Azure, upewnij się, że masz najnowsze wersje interfejsu wiersza polecenia platformy Azure i rozszerzenie Azure Container Apps za pomocą następujących poleceń:
# Upgrade the Azure CLI
az upgrade
# Install or upgrade the Azure Container Apps extension
az extension add --name containerapp --upgrade --allow-preview true -y
Użyj polecenia , az containerapps sessionpool create aby utworzyć pulę. Poniższy przykład tworzy pulę sesji interpretera kodu języka Python o nazwie my-session-pool. Upewnij się, że zastąpiłeś <RESOURCE_GROUP> nazwą grupy zasobów, zanim uruchomisz polecenie.
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
Podczas tworzenia puli sesji można zdefiniować następujące ustawienia:
| Setting | Description |
|---|---|
--container-type |
Typ interpretera kodu do użycia. Obsługiwane wartości to PythonLTS, NodeLTSi Shell. |
--max-sessions |
Maksymalna liczba przydzielonych sesji dozwolonych współbieżnie. Wartość maksymalna to 600. |
--cooldown-period |
Liczba dozwolonych sekund bezczynności przed zakończeniem. Okres bezczynności jest resetowany za każdym razem, gdy interfejs API sesji jest wywoływany. Dozwolony zakres to między 300 i 3600. |
--network-status |
Określa, czy wychodzący ruch sieciowy jest dozwolony z sesji. Prawidłowe wartości to EgressDisabled (wartość domyślna) i EgressEnabled. |
Ważne
Jeśli włączysz ruch wychodzący, kod uruchomiony w sesji będzie mógł uzyskać dostęp do Internetu. Należy zachować ostrożność, gdy kod jest niezaufany, ponieważ może służyć do wykonywania złośliwych działań, takich jak ataki typu "odmowa usługi".
Pobierz punkt końcowy interfejsu API zarządzania
Aby używać sesji interpretera kodu z integracją platformy LLM lub bezpośrednio wywołując punkty końcowe interfejsu API zarządzania, potrzebny jest punkt końcowy interfejsu API zarządzania puli.
Punkt końcowy ma format https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>.
Aby uzyskać punkt końcowy interfejsu API zarządzania dla puli sesji, użyj polecenia az containerapps sessionpool show. Przed uruchomieniem polecenia pamiętaj, aby zastąpić ciąg <RESOURCE_GROUP> swoją nazwą grupy zasobów.
az containerapp sessionpool show \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--query 'properties.poolManagementEndpoint' -o tsv
Niestandardowa pula kontenerów
Aby utworzyć niestandardową pulę sesji kontenera, należy podać obraz kontenera oraz ustawienia konfiguracji puli.
Każda sesja jest wywoływana lub komunikowana przy użyciu żądań HTTP. Kontener niestandardowy musi uwidocznić serwer HTTP na porcie określonym w celu odpowiadania na te żądania.
Aby utworzyć niestandardową pulę sesji kontenera przy użyciu interfejsu wiersza polecenia platformy Azure, upewnij się, że masz najnowsze wersje interfejsu wiersza polecenia platformy Azure i rozszerzenie Azure Container Apps za pomocą następujących poleceń:
az upgrade
az extension add --name containerapp --upgrade --allow-preview true -y
Niestandardowe pule sesji kontenerów wymagają środowiska usługi Azure Container Apps z włączoną obsługą profilu obciążenia. Jeśli nie masz środowiska, użyj az containerapp env create -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP> --location <LOCATION> --enable-workload-profiles polecenia , aby go utworzyć.
Użyj polecenia az containerapp sessionpool create, aby utworzyć niestandardową pulę sesji kontenera.
Poniższy przykład tworzy pulę sesji o nazwie my-session-pool z niestandardowym obrazem myregistry.azurecr.io/my-container-image:1.0 kontenera.
Przed wysłaniem żądania zastąp symbole zastępcze między <> nawiasami odpowiednimi wartościami dla puli sesji i identyfikatorem sesji.
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>
To polecenie tworzy pulę sesji z następującymi ustawieniami:
| Parameter | Wartość | Description |
|---|---|---|
--name |
my-session-pool |
Nazwa puli sesji. |
--resource-group |
my-resource-group |
Grupa zasobów zawierająca pulę sesji. |
--environment |
my-environment |
Nazwa lub identyfikator zasobu środowiska aplikacji kontenera. |
--container-type |
CustomContainer |
Typ kontenera puli sesyjnej. Musi być CustomContainer dla niestandardowych sesji kontenera. |
--image |
myregistry.azurecr.io/my-container-image:1.0 |
Obraz kontenera do wykorzystania dla puli sesji. |
--registry-server |
myregistry.azurecr.io |
Nazwa hosta serwera rejestru kontenerów. |
--registry-username |
my-username |
Nazwa użytkownika do zalogowania się do rejestru kontenerów. |
--registry-password |
my-password |
Hasło do logowania się do rejestru kontenerów. |
--cpu |
0.25 |
Wymagana liczba rdzeni CPU. |
--memory |
0.5Gi |
Wymagana pamięć. |
--target-port |
80 |
Port sesji używany do ruchu przychodzącego. |
--cooldown-period |
300 |
Liczba sekund bezczynności sesji przed zakończeniem sesji. Okres bezczynności jest resetowany za każdym razem, gdy interfejs API sesji jest wywoływany. Wartość musi zawierać się między 300 i 3600. |
--network-status |
EgressDisabled |
Określa, czy wychodzący ruch sieciowy jest dozwolony z sesji. Prawidłowe wartości to EgressDisabled (wartość domyślna) i EgressEnabled. |
--max-sessions |
10 |
Maksymalna liczba sesji, które można przydzielić w tym samym czasie. |
--ready-sessions |
5 |
Docelowa liczba sesji, które są gotowe w puli sesji przez cały czas. Zwiększ tę liczbę, jeśli sesje są przydzielane szybciej niż pula jest uzupełniana. |
--env-vars |
"key1=value1" "key2=value2" |
Zmienne środowiskowe do ustawienia w kontenerze. |
--location |
"Supported Location" |
Lokalizacja puli sesji. |
Aby sprawdzić stan puli sesji, użyj polecenia az containerapp sessionpool show.
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Aby zaktualizować pulę sesji, użyj polecenia az containerapp sessionpool update.
Ważne
Jeśli sesja jest używana do uruchamiania niezaufanego kodu, nie dołączaj informacji ani danych, do których nie chcesz uzyskiwać dostępu za pomocą niezaufanego kodu. Załóżmy, że kod jest złośliwy i ma pełny dostęp do kontenera, w tym jego zmiennych środowiskowych, wpisów tajnych i plików.
Punkt końcowy zarządzania
Ważne
Identyfikator sesji jest poufną informacją, która wymaga bezpiecznego procesu podczas tworzenia i zarządzania jego wartością. Aby chronić tę wartość, aplikacja musi zapewnić, że każdy użytkownik lub dzierżawca ma dostęp tylko do swoich własnych sesji.
Brak bezpiecznego dostępu do sesji może spowodować nieprawidłowe użycie lub nieautoryzowany dostęp do danych przechowywanych w sesjach użytkowników. Aby uzyskać więcej informacji, zobacz Identyfikatory sesji
Dostępne są następujące punkty końcowe do zarządzania sesjami w ramach puli:
| Ścieżka punktu końcowego | Metoda | Description |
|---|---|---|
code/execute |
POST |
Wykonywanie kodu w sesji. |
files/upload |
POST |
Przekaż plik do sesji. |
files/content/{filename} |
GET |
Pobierz plik z sesji. |
files |
GET |
Wyświetl listę plików w sesji. |
Pełny adres URL dla każdego punktu końcowego można utworzyć, łącząc punkt końcowy interfejsu API zarządzania pulą ze ścieżką punktu końcowego. Ciąg zapytania musi zawierać identifier parametr zawierający identyfikator sesji i api-version parametr z wartością 2024-02-02-preview.
Przykład: https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/code/execute?api-version=2024-02-02-preview&identifier=<IDENTIFIER>
Aby pobrać punkt końcowy zarządzania puli sesji, użyj polecenia az containerapp sessionpool show.
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
Wszystkie żądania do punktu końcowego zarządzania pulą Authorization muszą zawierać nagłówek z tokenem typu bearer. Aby dowiedzieć się, jak uwierzytelniać się za pomocą interfejsu API zarządzania pulą, zobacz Uwierzytelnianie.
Każde żądanie API musi również zawierać parametr identifier ciągu zapytania z identyfikatorem sesji. Ten unikatowy identyfikator sesji umożliwia aplikacji interakcję z określonymi sesjami. Aby dowiedzieć się więcej na temat identyfikatorów sesji, zobacz Identyfikatory sesji.
Buforowanie obrazów
Po utworzeniu lub zaktualizowaniu puli sesji usługa Azure Container Apps buforuje obraz kontenera w puli. Cache'owanie pomaga zwiększyć szybkość procesu tworzenia nowych sesji.
Wszelkie zmiany obrazu nie są automatycznie odzwierciedlane w sesjach. Aby zaktualizować obraz, zaktualizuj pulę sesji za pomocą nowej etykiety obrazu. Użyj unikatowego tagu dla każdej aktualizacji obrazu, aby upewnić się, że nowy obraz jest ściągany.
Treści powiązane
Typy sesji: informacje o różnych typach sesji dynamicznych:
Samouczki: praca bezpośrednio z interfejsem API REST lub za pośrednictwem agenta LLM:
- Użyj agenta LLM:
- Korzystanie z interfejsu API REST