Udostępnij przez


Sesje dynamiczne w usłudze Azure Container Apps

Dynamiczne sesje Azure Container Apps zapewniają szybki dostęp do bezpiecznych środowisk sandbox, które są idealne do uruchamiania kodu lub aplikacji wymagających silnej izolacji od innych obciążeń.

Sesje działają w kontekście puli sesji, która minimalizuje opóźnienie startowe, aby zapewnić natychmiastową dostępność sesji.

W przypadku sesji uzyskujesz:

  • Silna izolacja: sesje są odizolowane od siebie i od środowiska hosta. Każda sesja jest uruchamiana we własnej piaskownicy funkcji Hyper-V, zapewniając bezpieczeństwo i izolację klasy korporacyjnej. Opcjonalnie możesz włączyć izolację sieci, aby dodatkowo zwiększyć bezpieczeństwo.

  • Prosty dostęp: sesje są dostępne za pośrednictwem interfejsu API REST. Unikatowy identyfikator oznacza każdą sesję. Jeśli sesja z danym identyfikatorem nie istnieje, nowa sesja zostanie automatycznie przydzielona.

  • W pełni zarządzane: usługa Container Apps w pełni zarządza cyklem życia sesji. Sesje są automatycznie czyszczone, gdy nie są już używane.

  • Szybkie uruchamianie: nowe sesje są przydzielane w milisekundach. Szybkie start-upy są osiągane przez automatyczne utrzymywanie puli gotowych, ale nieprzydzielonych sesji.

  • Skalowalne: sesje mogą być uruchamiane na dużą skalę. Można uruchamiać setki lub tysiące sesji jednocześnie.

  • Dostęp do interfejsu API: sesje są udostępniane aplikacji za pośrednictwem pojedynczego punktu końcowego HTTP.

Sesja

Sesja to środowisko w trybie piaskownicy, które uruchamia niezaufany kod lub aplikację.

Każda sesja jest odizolowana od wszystkich innych sesji oraz od środowiska hosta za pomocą piaskownicy Hyper-V. Hyper-V technologia stanowi podstawę izolacji sesji, gwarantując, że każda sesja działa niezależnie z wymaganymi granicami zabezpieczeń. Aby zwiększyć bezpieczeństwo sieciowe, można włączyć izolację sieci sesji.

Istnieją dwa różne typy sesji.

Rodzaje sesji

Usługa Azure Container Apps obsługuje dwa typy sesji:

Typ Opis Model rozliczania
Sesje interpretera kodu W pełni zarządzany interpreter kodu, który umożliwia uruchamianie kodu w piaskownicy z wstępnie zainstalowanymi popularnymi bibliotekami.

Idealne rozwiązanie do uruchamiania niezaufanego kodu, takiego jak kod dostarczony przez użytkowników aplikacji lub kod generowany przez duży model językowy (LLM).

Możesz użyć gotowej sesji lub struktury modelu językowego.
Na sesję (zużycie)
Niestandardowe sesje kontenerów Opcja przynieś swój własny kontener, w której uruchamiasz obrazy swoich kontenerów w bezpiecznych i izolowanych piaskownicach.

Ta metoda jest dobrym rozwiązaniem, jeśli chcesz uruchomić niestandardowy tłumacz kodu dla języka, który nie jest obsługiwany domyślnie, czy też obciążenia, które wymagają silnej izolacji.
Dedykowany plan usługi Container Apps

Każda sesja, niezależnie od typu, jest uruchamiana w kontekście puli sesji.

Pule sesji

Aby zapewnić ekspresowy czas alokacji sesji w czasie poniżej sekundy, usługa Azure Container Apps utrzymuje pulę sesji gotowych, lecz nieprzydzielonych. Gdy aplikacja wysyła żądanie na sesję, która nie była wcześniej używana, pula automatycznie przypisuje nową sesję. W miarę przydzielania sesji pula jest automatycznie uzupełniana w celu utrzymania stałej liczby gotowych sesji.

Każda pula sesji jest dostępna dla aplikacji za pośrednictwem unikatowej lokalizacji punktu końcowego zarządzania pulą.

Cykl życia sesji

Środowisko uruchomieniowe usługi Container Apps automatycznie zarządza cyklem życia każdej sesji w puli. Życie sesji zaczyna się wraz z jej rozpoczęciem i trwa, dopóki sesja jest używana. Po upływie czasu ochładzania nie ma żadnych żądań do sesji, sesja zostanie zniszczona.

Następujące stany definiują ten cykl życia:

  1. Oczekujące: po uruchomieniu sesji jest ona w stanie oczekiwania. Ilość czasu, jaki sesja spędza w tym stanie, zależy od obrazu kontenera oraz ustawień puli sesji. Sesja znajdująca się w tym stanie nie jest dodawana do puli gotowych sesji.

  2. Nieprzydzielone: po zakończeniu uruchamiania sesji zostanie ona dodana do puli i stanie się dostępna do alokacji. W przypadku sesji kontenerów niestandardowych można określić, ile gotowych sesji ma być utrzymywanych w puli. Ta liczba powinna zostać zwiększona, jeśli sesje są przydzielane szybciej niż są uzupełniane.

  3. Przydzielone: Po wysłaniu żądania do nieuruchomionej sesji, pula udostępnia nową sesję i umieszcza ją w stanie przydzielonym. Kolejne żądania z tym samym identyfikatorem sesji są kierowane do tej samej sesji, co pozwala na wydajne ponowne użycie bez zimnych startów. Każda przydzielona sesja jest skojarzona z identyfikatorem sesji.

  4. Zniszczone: jeśli sesja nie odbiera żądań przez czas trwania zdefiniowany przez ustawienie cooldownPeriodInSeconds, to sesja i jej piaskownica Hyper-V zostaną bezpiecznie usunięte. Ta automatyczna konfiguracja oczyszczania zwiększa zarządzanie zasobami i zabezpieczenia.

Środowisko uruchomieniowe usługi Container Apps automatycznie zarządza cyklem życia każdej sesji w puli sesji.

Dostępność w regionach

Sesje dynamiczne są dostępne w następujących regionach:

Region (Region) Interpreter kodu Kontener niestandardowy
Australia Wschodnia
Brazylia Południowa
Kanada Środkowa
Kanada Wschodnia
Środkowe stany USA
Azja Wschodnia
Wschodnie stany USA
Wschodnie stany USA 2
Francja Środkowa
Niemcy Środkowo-Zachodnie
Włochy Północne
Japonia Wschodnia
Korea Środkowa
Północno-środkowe stany USA
Europa Północna
Norwegia Wschodnia
Polska Środkowa
Północna Republika Południowej Afryki
Indie Południowe
Szwecja Środkowa
Szwajcaria Północna
Północne Zjednoczone Emiraty Arabskie
Południowe Zjednoczone Królestwo
Zachodnio-środkowe stany USA
Europa Zachodnia
Zachodnie stany USA
Zachodnie stany USA 2
Zachodnie stany USA 3

Fakturowanie

Sesje kontenerów niestandardowych są rozliczane na podstawie zasobów zużywanych przez pulę sesji. Aby uzyskać więcej informacji, zobacz Rozliczenia usługi Azure Container Apps.

Zabezpieczenia

Użyj następujących metod, aby zwiększyć bezpieczeństwo sesji dynamicznych.

  • Bezpieczne identyfikatory: używaj identyfikatorów bezpiecznej sesji przez cały czas. Generowanie identyfikatorów sesji przy użyciu metod kryptograficznych w celu zapewnienia unikatowych i nieprzewidywalnych wartości. Unikaj używania identyfikatorów sekwencyjnych, które mogą być zgadywane przez osobę atakującą.

  • Użyj protokołu HTTPS: zawsze używaj protokołu HTTPS do szyfrowania danych przesyłanych. Chroni to identyfikatory sesji i wszelkie poufne dane wymieniane między klientem a serwerem przed przechwyceniem.

  • Ogranicz okres istnienia sesji: zaimplementuj limity czasu dla sesji. Na przykład poczekaj maksymalnie 15 minut braku aktywności, zanim sesja zostanie automatycznie zakończona. Pomaga to ograniczyć ryzyko spowodowane utratą lub nienadzorowanym urządzeniem.

  • Regularne inspekcje i monitorowanie: okresowo przejrzyj praktyki i dzienniki zarządzania sesjami. Zaimplementuj narzędzia do monitorowania, aby otrzymywać alerty dotyczące podejrzanych działań, takich jak powtarzające się nieudane próby logowania lub nieprawidłowe długości sesji.