Niestandardowe sesje kontenera usługi Azure Container Apps

Oprócz wbudowanego interpretera kodu, który udostępnia dynamiczne sesje usługi Azure Container Apps, można również użyć kontenerów niestandardowych do zdefiniowania swoich własnych izolowanych środowisk sesji.

Uwaga / Notatka

Ten artykuł dotyczy tylko niestandardowych pul sesji kontenerowych. O ile nie określono inaczej, funkcje opisane tutaj nie są dostępne dla pul sesji interpretera kodu.

Zastosowania dla niestandardowych sesji kontenera

Kontenery niestandardowe umożliwiają tworzenie rozwiązań dostosowanych do Twoich potrzeb. Umożliwiają one uruchamianie kodu lub aplikacji w środowiskach, które są szybkie i efemeryczne. Oferują one bezpieczne przestrzenie w środowisku piaskownicy z Hyper-V. Ponadto można je skonfigurować z opcjonalną izolacją sieci. Przykłady obejmują:

  • Interpretery kodu: Użyj, jeśli uruchamiasz niezaufany kod w bezpiecznych piaskownicach, używając języka, który nie jest obsługiwany w wbudowanym interpreterze, lub potrzebujesz pełnej kontroli nad interpreterem kodu.

  • Wykonywanie izolowane: Użyj, jeśli uruchamiasz aplikacje w wrogich scenariuszach współdzielonych, gdzie każdy najemca lub użytkownik ma własne środowisko w trybie piaskownicy. Te środowiska są odizolowane od siebie i od aplikacji hosta. Niektóre przykłady obejmują aplikacje, które uruchamiają kod dostarczony przez użytkownika, kod, który przyznaje użytkownikowi końcowemu dostęp do powłoki opartej na chmurze, agentów sztucznej inteligencji i środowisk deweloperskich.

Używanie niestandardowych sesji kontenera

Aby użyć niestandardowych sesji kontenera, utwórz pulę sesji z niestandardowym obrazem kontenera. Usługa Azure Container Apps automatycznie uruchamia kontenery w swoich własnych piaskownicach Hyper-V przy użyciu podanego obrazu kontenera. Po uruchomieniu kontenera jest dostępny dla puli sesji.

Gdy aplikacja żąda sesji, instancja jest natychmiast przydzielana z puli. Sesja pozostaje aktywna, dopóki nie wejdzie w stan bezczynności, który zostanie automatycznie zatrzymany i zniszczony.

Sondy kontenerów dla pul sesji

Użyj sond kontenerów, aby skonfigurować kontrole kondycji niestandardowych pul sesji kontenera i zachować wystąpienia sesji w dobrej kondycji.

Uwaga / Notatka

Sondy kontenerów wymagają wersji interfejsu API lub nowszej 2025-02-02-preview .

Sondy kontenerów umożliwiają definiowanie badań kondycji kontenerów dla sesji, podobnie jak sondy kondycji w usłudze Azure Container Apps. Po skonfigurowaniu pula sesji monitoruje każdą instancję sesji i usuwa niezdrowe instancje.

Pula sesji:

  • Zapewnia, że gotowe wystąpienia sesji są w dobrej kondycji na podstawie sond diagnostycznych.
  • Automatycznie usuwa niezdrowe instancje sesji.
  • Skaluje w górę, aby utrzymać skonfigurowaną readySessionInstances liczbę przy zdrowych sesjach.

Pool sesji obsługuje typy sond Liveness i Startup. Aby uzyskać więcej informacji na temat sposobu działania sond, zobacz Sondy kondycji w usłudze Azure Container Apps.

Konfiguracja

Podczas tworzenia lub aktualizowania puli sesji określ sondy w properties.customContainerTemplate.containers sekcji ładunku żądania.

Aby uzyskać pełną specyfikację interfejsu API, zobacz SessionPools API.

Przykład

{
  "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
    }
  }
}

Troubleshooting

Jeśli pula sesji nie utrzymuje oczekiwanej liczby zdrowych readySessionInstances, rozważ następujące rozwiązania:

  • Sprawdź dzienniki kontenera. Przejrzyj dzienniki kontenera sesji, aby zidentyfikować problemy z punktami kontrolnymi sondy lub rozruchem kontenera. Zobacz Wyświetlanie dzienników dla niestandardowych pul sesji kontenerów.
  • Sprawdź konfigurację sondy. Upewnij się, że ścieżki sondy, porty i progi są poprawnie skonfigurowane dla aplikacji.
  • Przejrzyj kondycję kontenera. Sprawdź problemy wewnątrz kontenera, które uniemożliwiają pomyślne reagowanie punktów końcowych sondy.

Zatrzymywanie sesji

Użyj interfejsu API zatrzymywania sesji, aby zakończyć sesję w niestandardowej puli sesji kontenera.

Pule sesji obsługują automatyczne zarządzanie sesjami za pośrednictwem programu lifecycleConfiguration, który obsługuje cykl życia sesji na podstawie konfiguracji. Istnieją jednak scenariusze, w których może być potrzebna większa kontrola.

Po przydzieleniu sesji możesz wywołać ten interfejs API, aby ręcznie go zakończyć w dowolnym momencie. Takie podejście jest przydatne w następujących przypadkach:

  • Należy wyczyścić zasoby, zanim sesja osiągnie swój czas życia.
  • Pula sesji osiąga maksymalny limit współbieżnych sesji i musisz zwolnić zasoby dla nowych sesji.
  • Sesja kończy zadanie i chcesz natychmiast zwolnić zasoby.

Odniesienie do API

Żądanie

POST {PoolManagementEndpoint}/.management/stopSession?api-version=2025-10-02-preview&identifier={SessionIdentifier}

Parametry

Parameter Typ Wymagane Opis
api-version ciąg Yes Wersja interfejsu API do użycia (na przykład 2025-10-02-preview).
identifier ciąg Yes Unikatowy identyfikator sesji do zatrzymania.

Examples

Żądanie

POST https://{PoolManagementEndpoint}/.management/stopSession?api-version=2025-10-02-preview&identifier=testSessionIdentifier

Odpowiedź

HTTP/1.1 200 OK
Content-Type: text/plain

Session testSessionIdentifier in session pool testSessionPool stopped.

Logging

Niestandardowe pule sesji kontenerów integrują się z usługami Azure Monitor i Log Analytics. Dzienniki aplikacji są przechwytywane tylko wtedy, gdy kontener zapisuje dane wyjściowe do stdout lub stderr, dlatego upewnij się, że aplikacja emituje dzienniki do konsoli.

Wymagania wstępne

  • Środowisko usługi Azure Container Apps z niestandardową pulą sesji kontenerów
  • Obszar roboczy usługi Log Analytics lub utwórz go podczas instalacji

Konfigurowanie rejestrowania

Włączanie rejestrowania usługi Azure Monitor

  1. W witrynie Azure Portal przejdź do środowiska Container Apps Environment.
  2. W obszarze Monitorowanie wybierz pozycję Opcje rejestrowania.
  3. Ustaw Miejsce docelowe logów na Azure Monitor.

Konfigurowanie ustawień diagnostycznych

  1. W środowisku usługi Container Apps w obszarze Monitorowanie wybierz pozycję Ustawienia diagnostyczne.
  2. Wybierz + Dodaj ustawienie diagnostyczne.
  3. Podaj nazwę ustawienia diagnostycznego.
  4. W obszarze Dzienniki wybierz kategorie dzienników związanych z sesją, które chcesz przechwycić.
  5. W obszarze Szczegóły miejsca docelowego wybierz pozycję Wyślij do obszaru roboczego usługi Log Analytics.
  6. Wybierz obszar roboczy usługi Log Analytics lub utwórz nowy.
  7. Wybierz opcję Zapisz.

Tabele usługi Log Analytics

Kategoria dziennika Tabela usługi Log Analytics Opis
Dzienniki aplikacji AppEnvSessionConsoleLogs Standardowe dane wyjściowe () i standardowy błąd (stdoutstderr) emitowany przez konteneryzowaną aplikację.
Dzienniki platformy AppEnvSessionLifecycleLogs, AppEnvSessionPoolEvents Zdarzenia generowane przez platformę związane z alokacją puli sesji, cyklem życia i stanem operacyjnym.

Jeśli dzienniki są wysyłane bezpośrednio do usługi Log Analytics, tabele używają sufiksu _CL, na przykład AppEnvSessionConsoleLogs_CL. Gdy dzienniki są kierowane za pośrednictwem ustawień diagnostycznych usługi Azure Monitor, nazwy tabel nie zawierają sufiksu _CL.

Wyświetlanie dzienników sesji

Po skonfigurowaniu ustawień diagnostycznych dzienniki są wysyłane do obszaru roboczego usługi Log Analytics.

Wykonywanie zapytań dotyczących dzienników w usłudze Log Analytics

  1. W witrynie Azure Portal przejdź do obszaru roboczego usługi Log Analytics.
  2. W menu po lewej stronie wybierz pozycję Dzienniki.
  3. Jeśli zapytanie jest w trybie prostym, wybierz tryb KQL.
  4. Użyj języka KQL (Kusto Query Language) do wykonywania zapytań dotyczących dzienników sesji.

Przykłady zapytań

Wyświetl najnowsze dzienniki konsoli z sesji:

AppEnvSessionConsoleLogs
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc
| take 100

Wyświetlanie zdarzeń cyklu życia sesji:

AppEnvSessionLifecycleLogs
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc

Wyświetlanie zdarzeń puli sesji:

AppEnvSessionPoolEvents
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc

Metrics

Usługa Azure Container Apps emituje metryki usługi Azure Monitor dla niestandardowych pul sesji kontenerów. Użyj tych metryk, aby śledzić wydajność i aktywność puli w czasie.

Obsługiwane metryki

Aby uzyskać pełną listę, zobacz Obsługiwane metryki — Microsoft.App/sessionpools — Azure Monitor.

Wskaźnik Nazwa w interfejsie API REST Jednostka Aggregation Wymiary Granulki czasu DS Eksport
Liczba sesji wykonywanych
Liczba działających podów sesji w puli sesji
PoolExecutingPodCount Liczba Suma (suma), średnia, maksimum, minimum poolName PT1M Yes
Liczba tworzonych sesji
Liczba tworzenia zasobników sesji w puli sesji
PoolPendingPodCount Liczba Suma (suma), średnia, maksimum, minimum poolName PT1M Yes
Liczba gotowych sesji
Liczba gotowych podów sesji w puli sesji
PoolReadyPodCount Liczba Suma (suma), średnia, maksimum, minimum poolName PT1M Yes

Wyświetlanie metryk sesji

Możesz użyć metryk środowiska usługi Azure Monitor lub Container Apps, aby wyświetlić metryki oparte na sesji.

Metryki usługi Azure Monitor

  1. Otwórz stronę Metryki usługi Azure Monitor.
  2. Użyj Zakres, aby wybrać niestandardową pulę sesji kontenerów.
  3. Wybierz metrykę i agregację, aby wyświetlić.

Metryki środowiska usługi Container Apps

  1. W witrynie Azure Portal otwórz środowisko Container Apps Environment.
  2. W obszarze Monitorowanie wybierz pozycję Metryki.
  3. Użyj Zakres, aby wybrać niestandardową pulę sesji kontenerów.
  4. Wybierz metrykę i agregację, aby wyświetlić.