Azure Container Apps özel kapsayıcı oturumları

Azure Container Apps dinamik oturumlarının sağladığı yerleşik kod yorumlayıcıya ek olarak, kendi oturum korumalı alanlarınızı tanımlamak için özel kapsayıcılar da kullanabilirsiniz.

Uyarı

Bu makale yalnızca özel kapsayıcı oturumu havuzları için geçerlidir. Aksi belirtilmediği sürece, burada açıklanan özellikler kod yorumlayıcı oturum havuzları için kullanılamaz.

Özel kapsayıcı oturumları için kullanımlar

Özel kapsayıcılar, ihtiyaçlarınıza uygun çözümler oluşturmanıza olanak sağlar. Hızlı ve kısa ömürlü ortamlarda kod veya uygulama çalıştırmanızı sağlar. Hyper-V ile güvenli, korumalı alanlar sunar. Ayrıca, isteğe bağlı ağ yalıtımı ile yapılandırılabilirler. Bazı Örnekler:

  • Kod yorumlayıcıları: Yerleşik yorumlayıcıda desteklenmeyen bir dil tarafından güvenli korumalı alanlarda güvenilmeyen kod çalıştırıyorsanız veya kod yorumlayıcı ortamı üzerinde tam denetime ihtiyacınız varsa kullanın.

  • Yalıtılmış yürütme: Uygulamaları, her kiracının veya kullanıcının kendi korumalı ortamına sahip olduğu saldırgan, çok kiracılı senaryolarda çalıştırıyorsanız kullanın. Bu ortamlar birbirinden ve konak uygulamasından yalıtılır. Bazı örnekler arasında kullanıcı tarafından sağlanan kodu çalıştıran uygulamalar, son kullanıcıya bulut tabanlı bir kabuk, yapay zeka aracıları ve geliştirme ortamlarına erişim sağlayan kod verilebilir.

Özel kapsayıcı oturumlarını kullanma

Özel kapsayıcı oturumlarını kullanmak için özel kapsayıcı görüntüsüyle bir oturum havuzu oluşturun. Azure Container Apps, sağlanan görüntüyü kullanarak kendi Hyper-V korumalı alanlarındaki kapsayıcıları otomatik olarak başlatır. Kapsayıcı başlatıldıktan sonra oturum havuzunda kullanılabilir.

Uygulamanız bir oturum istediğinde, havuzdan hemen bir oturum tahsis edilir. Oturum, boşta durumuna girene kadar etkin kalır ve bu durum otomatik olarak durdurulur ve yok edilir.

Oturum havuzları için kapsayıcı yoklamaları

Özel kapsayıcı oturum havuzları için sağlık kontrollerini yapılandırmak ve sağlıklı oturum örneklerini korumak için kapsayıcı yoklamalarını kullanın.

Uyarı

Kapsayıcı yoklamaları için API sürümünün 2025-02-02-preview veya daha üzeri olması gerekir.

Kapsayıcı yoklamaları, Azure Container Apps'teki sistem durumu yoklamalarına benzer şekilde oturum kapsayıcıları için sistem durumu denetimleri tanımlamanıza olanak sağlar. Yapılandırıldığında, oturum havuzu her oturum örneğini izler ve iyi durumda olmayan örnekleri kaldırır.

Oturum havuzu:

  • Yoklamalara göre hazır oturum örneklerinin iyi durumda olmasını sağlar.
  • İyi durumda olmayan oturum örneklerini otomatik olarak kaldırır.
  • İyi durumdaki oturumlarla yapılandırılan readySessionInstances sayıyı korumak için ölçeği büyütür.

Oturum havuzları Canlılık Kontrolü ve Başlatma Kontrolü yoklama türlerini destekler. Yoklamaların nasıl çalıştığı hakkında daha fazla bilgi için bkz. Azure Container Apps'te sistem durumu yoklamaları.

Konfigürasyon

Bir oturum havuzu oluşturduğunuzda veya güncelleştirdiğinizde, istek yükünüzün properties.customContainerTemplate.containers bölümünde yoklamalar belirtin.

TAM API belirtimi için bkz. SessionPools API'leri.

Example

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

Sorun giderme

Oturum grubunuz beklenen sayıda sağlıklı durumda değilse, aşağıdaki düzeltmeleri göz önünde bulundurun:

  • Kapsayıcı günlüklerini denetleyin. Yoklama uç noktaları veya kapsayıcı başlatma ile ilgili sorunları belirlemek için oturum kapsayıcısı günlüklerini gözden geçirin. Bkz. Özel kapsayıcı oturumu havuzları için günlükleri görüntüle.
  • Prob düzeneğini doğrulayın. Yoklama yollarının, bağlantı noktalarının ve eşiklerin uygulamanız için doğru yapılandırıldığından emin olun.
  • Kapsayıcı durumunu gözden geçirin. Kapsayıcınızın içinde yoklama uç noktalarının başarıyla yanıt vermesini engelleyen sorunları denetleyin.

Oturumu durdurma

Özel kapsayıcı oturumu havuzunda oturumu sonlandırmak için Oturumu Durdur API'sini kullanın.

Oturum havuzları, lifecycleConfiguration kullanarak yapılandırmanıza göre oturum yaşam döngüsünü işleyen otomatik oturum yönetimini destekler. Ancak, daha fazla denetime ihtiyacınız olabilecek senaryolar vardır.

Bir oturumu ayırdıktan sonra, istediğiniz zaman el ile sonlandırmak için bu API'yi çağırabilirsiniz. Bu yaklaşım aşağıdaki durumlarda kullanışlıdır:

  • Oturumun yaşam süresine ulaşmadan önce, kaynakları temizlemeniz gerekir.
  • Oturum havuzunuz eş zamanlı oturum sayısı üst sınırına ulaşır ve yeni oturumlar için kapasiteyi boşaltmanız gerekir.
  • Oturum çalışmasını tamamlar ve kaynakları hemen serbest bırakmak istersiniz.

API referansı

İstek

POST <POOL_MANAGEMENT_ENDPOINT>/.management/stopSession?api-version=2025-02-02-preview&identifier=<SESSION_ID>

Parametreler

Parametre Türü Zorunlu Açıklama
api-version String Evet Kullanılacak API sürümü (örneğin, 2025-02-02-preview).
identifier String Evet Durdurulacak oturumun benzersiz tanımlayıcısı.

Örnekler

İstek

POST https://<SESSION_POOL_NAME>.<ENVIRONMENT_ID>.<REGION>.azurecontainerapps.io/.management/stopSession?api-version=2025-02-02-preview&identifier=testSessionIdentifier

Yanıt

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

Session testSessionIdentifier in session pool testSessionPool stopped.

Oturum bilgilerini alma

Oturum durumunu denetlemek, süre sonu ayrıntılarını almak ve tüm etkin oturumları listelemek için oturum havuzunuzu sorgulayabilirsiniz. Bu özellik oturum durumunu izlemek, kaynak kullanımını izlemek ve özel temizleme iş akışlarını uygulamak için kullanışlıdır.

Tek bir oturum al

Belirli bir oturumla ilgili ayrıntıları almak için uç noktayı kullanın getSession :

POST <POOL_MANAGEMENT_ENDPOINT>/.management/getSession?identifier=<SESSION_ID>&api-version=2025-02-02-preview
Authorization: Bearer <TOKEN>

Uç nokta getSession, oturum tanımlayıcısı, geçerli sona erme süresi ve oluşturulma zaman damgası dahil oturum meta verilerini döndürür.

SessionView yanıt şeması

Veri Alanı Türü Zorunlu Açıklama
identifier String Evet Sağladığınız oturum tanımlayıcısı
etag String Evet Oturum için opak sürüm tanımlayıcısı. Değişiklik algılama için bu tanımlayıcıyı kullanabilirsiniz.
expiresAt DateTime Evet Oturumun sonlandırılacağı UTC zaman damgası
createdAt DateTime Hayır Oturum oluşturulma tarih ve saati
lastAccessedAt DateTime Hayır Bu oturuma yapılan son isteğin zaman damgası

Örnek istek ve yanıt

curl -X POST "https://my-pool.env-id.westus2.azurecontainerapps.io/.management/getSession?identifier=user-123&api-version=2025-02-02-preview" \
  -H "Authorization: Bearer $TOKEN"

Başarı yanıtı (HTTP 200):

{
  "identifier": "user-123",
  "etag": "a1b2c3d4",
  "expiresAt": "2026-04-30T14:30:00Z",
  "createdAt": "2026-04-30T13:30:00Z",
  "lastAccessedAt": "2026-04-30T14:29:00Z"
}

Havuzdaki tüm oturumları listeleme

Oturum havuzunuzdaki tüm oturumların listesini almak için uç noktayı kullanın listSessions :

POST <POOL_MANAGEMENT_ENDPOINT>/.management/listSessions?skip=0&api-version=2025-02-02-preview
Authorization: Bearer <TOKEN>

Pagination

Liste uç noktası, atlama tabanlı sayfalandırmayı destekler. Varsayılan olarak, her sayfa en fazla 300 oturum döndürür. Sonuçlarda skip gezinmek için sorgu parametresini kullanın.

Parametre Açıklama
skip Baştan atlanacak oturum sayısı (varsayılan: 0)
nextLink Sonraki sonuç sayfası için tam URL (daha fazla sonuç olduğunda yanıta eklenir)

ApiCollectionEnvelope yanıt şeması

Veri Alanı Türü Açıklama
value SessionView[] Oturum nesneleri dizisi
count integer Geçerli sayfadaki oturum sayısı
nextLink String Sonraki sayfanın URL'si (başka sonuç yoksa null)

Örnek sayfalandırma döngüsü

POOL_URL="https://my-pool.env-id.westus2.azurecontainerapps.io"
next_url="$POOL_URL/.management/listSessions?skip=0&api-version=2025-02-02-preview"

while [ -n "$next_url" ]; do
  response=$(curl -s -X POST "$next_url" \
    -H "Authorization: Bearer $TOKEN")

  echo "$response" | jq '.value[] | {identifier, expiresAt}'

  next_url=$(echo "$response" | jq -r '.nextLink // empty')
done

Örnek yanıt (HTTP 200):

{
  "value": [
    {
      "identifier": "user-123",
      "etag": "a1b2c3d4",
      "expiresAt": "2026-04-30T14:30:00Z",
      "createdAt": "2026-04-30T13:30:00Z",
      "lastAccessedAt": "2026-04-30T14:29:00Z"
    },
    {
      "identifier": "user-456",
      "etag": "e5f6a7b8",
      "expiresAt": "2026-04-30T14:30:00Z",
      "createdAt": "2026-04-30T13:30:00Z",
      "lastAccessedAt": "2026-04-30T14:29:00Z"
    }
  ],
  "count": 2,
  "nextLink": "https://my-pool.env-id.westus2.azurecontainerapps.io/.management/listSessions?skip=300"
}

Kayıt

Özel kapsayıcı oturum havuzları Azure İzleyici ve Günlük Analitiği ile entegre edilir. Uygulama günlükleri yalnızca kapsayıcınız stdout veya stderr öğesine çıktı yazdığında yakalanır, bu nedenle uygulamanızın konsola günlük yazdığından emin olun.

Önkoşullar

  • Özel oturum havuzlu bir Azure Container Apps ortamı
  • Log Analytics çalışma alanı veya kurulum sırasında bir çalışma alanı oluşturun

Log kaydını yapılandırma

Azure İzleyici günlüğünü etkinleştirme

  1. Azure portalında Container Apps Ortamınıza gidin.
  2. İzleme'nin altında Günlük seçenekleri'ni seçin.
  3. Günlükler HedefiniAzure İzleyici olarak ayarlayın.

Tanılama ayarlarını yapılandırma

  1. Container Apps Ortamınızdaki İzleme'nin altında Tanılama ayarları'nı seçin.
  2. + Tanılama ayarı ekle’yi seçin.
  3. Tanılama ayarınız için bir ad belirtin.
  4. Günlükler'in altında, yakalamak istediğiniz oturumla ilgili günlük kategorilerini seçin.
  5. Hedef ayrıntıları'nın altında Log Analytics çalışma alanına gönder'i seçin.
  6. Log Analytics çalışma alanınızı seçin veya yeni bir çalışma alanı oluşturun.
  7. Kaydetseçeneğini seçin.

Log Analytics tabloları

Günlük kategorisi Log Analytics tablosu Açıklama
Uygulama günlükleri AppEnvSessionConsoleLogs Kapsayıcılı uygulama tarafından yayılan standart çıkış (stdout) ve standart hata (stderr).
Platform günlükleri AppEnvSessionLifecycleLogs, AppEnvSessionPoolEvents Oturum havuzu ayırma, yaşam döngüsü ve işletim durumuyla ilgili platform tarafından oluşturulan olaylar.

Günlükler doğrudan Log Analytics'e gönderilirse, tablolar _CL sonekini kullanır, örneğin. AppEnvSessionConsoleLogs_CL Günlükler Azure İzleyici tanılama ayarları aracılığıyla yönlendirildiğinde, tablo adları _CL sonekini içermez.

Oturum günlüklerini görüntüleme

Tanılama ayarları yapılandırıldıktan sonra günlükler Log Analytics çalışma alanınıza gönderilir.

Log Analytics'te sorgu günlükleri

  1. Azure portalında Log Analytics çalışma alanınıza gidin.
  2. Soldaki menüde Günlükler'i seçin.
  3. Sorgu Basit moddaysaKQL modu'nu seçin.
  4. Oturum günlüklerini sorgulamak için Kusto Sorgu Dili'ni (KQL) kullanın.

Örnek sorgular

Oturumlardan son konsol günlüklerini görüntüleyin:

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

Oturum yaşam döngüsü olaylarını görüntüleme:

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

Oturum havuzu olaylarını görüntüleme:

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

Metrics

Azure Container Apps, özel kapsayıcı oturumu havuzları için Azure İzleyici ölçümlerini yayar. Zaman içinde havuz kapasitesini ve etkinliğini izlemek için bu ölçümleri kullanın.

Desteklenen ölçümler

Listenin tamamı için bkz . Desteklenen ölçümler - Microsoft.App/sessionpools - Azure İzleyici.

Ölçü birimi REST API'de isim Birim Aggregation Boyutlar Zaman Granülleri DS İhracat
Oturum Sayısını Yürütme
Oturum havuzundaki çalışan oturum podlarının sayısı
PoolExecutingPodCount Sayı Toplam (Toplam), Ortalama, Maksimum, Minimum poolName PT1M Evet
Oturum Sayısı Oluşturma
Oturum havuzunda oluşturulan oturum podlarının sayısı
PoolPendingPodCount Sayı Toplam (Toplam), Ortalama, Maksimum, Minimum poolName PT1M Evet
Hazır Oturum Sayısı
Oturum havuzundaki hazır oturum podlarının sayısı
PoolReadyPodCount Sayı Toplam (Toplam), Ortalama, Maksimum, Minimum poolName PT1M Evet

Oturum ölçümlerini görüntüleme

Oturum tabanlı ölçümleri görüntülemek için Azure İzleyici veya Container Apps ortam ölçümlerini kullanabilirsiniz.

Azure İzleme Ölçümleri

  1. Azure İzleyici Ölçümleri sayfasını açın.
  2. Özel kapsayıcı oturum havuzunuzu seçmek için Scope'u kullanın.
  3. Görüntülenecek ölçümü ve toplamayı seçin.

Container Apps ortam ölçümleri

  1. Azure portalında Container Apps Ortamınızı açın.
  2. İzleme seçeneğinin altından Ölçümler’i seçin.
  3. Özel kapsayıcı oturum havuzunuzu seçmek için Scope'u kullanın.
  4. Görüntülenecek ölçümü ve toplamayı seçin.