Aracılığıyla paylaş


Azure Container Apps'te oturum havuzlarını kullanma

Oturum havuzları yeni havuzlar için saniye altı oturum ayırma süreleri sağlar ve her oturumun yönetiminden ve yaşam döngüsünden sorumludur.

Konfigürasyon

için kullanılabilen az containerapp sessionpool createaşağıdaki parametreleri kullanarak oturum havuzlarının davranışını denetleyebilirsiniz.

Amaç Mülkiyet Description
En fazla oturum sayısını ayarlama max-sessions Havuzda izin verilen en fazla eşzamanlı oturum sayısı. Maksimum sınıra ulaşıldıktan sonra gelen istekler, havuza daha fazla oturum ayrılmadığını belirten bir 404 sunucu hatası ile geri döndürülür.
Bekleme süresi cooldown-period Oturumun sonlandırılmadan önce boşta bulunabileceği saniye sayısı. Oturumun API'si her çağrıldığında boşta kalma süresi sıfırlanır. Değer, 300 ile 3600 arasında olmalıdır.
Hedef oturum miktarı ready-sessions Havuzda hazır tutulacak hedef oturum sayısı.

Havuz oluşturma

Havuz oluşturma işlemi, kod yorumlayıcı havuzu mu yoksa özel kapsayıcı havuzu mu oluşturduğunuza bağlı olarak biraz farklıdır.

Kod yorumlayıcı havuzu

Azure CLI kullanarak bir kod yorumlayıcısı oturum havuzu oluşturmak için aşağıdaki komutlarla Azure CLI'nın en son sürümlerine ve Azure Container Apps uzantısına sahip olduğunuzdan emin olun:

# Upgrade the Azure CLI
az upgrade

# Install or upgrade the Azure Container Apps extension
az extension add --name containerapp --upgrade --allow-preview true -y

az containerapps sessionpool create Havuzu oluşturmak için komutunu kullanın. Aşağıdaki örnek adlı my-session-poolbir Python kod yorumlayıcısı oturum havuzu oluşturur. komutunu çalıştırmadan önce öğesini kaynak grubu adınızla değiştirdiğinizden <RESOURCE_GROUP> emin olun.

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

Oturum havuzu oluştururken aşağıdaki ayarları tanımlayabilirsiniz:

Setting Description
--container-type Kullanılacak kod yorumlayıcı türü. Desteklenen değerler , PythonLTSve NodeLTSdeğerlerini içerirShell.
--max-sessions Eşzamanlı olarak izin verilen en fazla ayrılmış oturum sayısı. En büyük değer: 600.
--cooldown-period Sonlandırmadan önce izin verilen boşta kalan saniye sayısı. Oturumun API'si her çağrıldığında boşta kalma süresi sıfırlanır. İzin verilen aralık 300 ile 3600 arasındadır.
--network-status Oturumdan giden ağ trafiğine izin verilip verilmeyeceğini belirler. Geçerli değerler EgressDisabled (varsayılan) ve EgressEnabled'dir.

Önemli

Çıkışı etkinleştirirseniz oturumda çalıştırılan kod İnternet'e erişebilir. Hizmet reddi saldırıları gibi kötü amaçlı etkinlikleri gerçekleştirmek için kullanılabildiğinden koda güvenilmediğinde dikkatli olun.

Yönetim API'sinin uç noktasını alma

LLM çerçevesi tümleştirmeleriyle veya doğrudan yönetim API'sinin uç noktalarını çağırarak kod yorumlayıcı oturumlarını kullanmak için havuzun yönetim API'sinin uç noktası gerekir.

Endpoint şu formatta bulunmaktadır: https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>.

Bir oturum havuzu için yönetim API'sinin uç noktasını almak için komutunu kullanın az containerapps sessionpool show . komutunu çalıştırmadan önce öğesini kaynak grubu adınızla değiştirdiğinizden <RESOURCE_GROUP> emin olun.

az containerapp sessionpool show \
    --name my-session-pool \
    --resource-group <RESOURCE_GROUP> \
    --query 'properties.poolManagementEndpoint' -o tsv

Özel konteyner havuzu

Özelleştirilmiş kapsayıcı oturum havuzu oluşturmak için bir kapsayıcı görüntüsü ve havuz yapılandırma ayarlarını sağlamanız gerekir.

HTTP isteklerini kullanarak her oturumu çağırır veya bunlarla iletişim kurarsınız. Özel kapsayıcı, bu istekleri yanıtlamak için belirttiğiniz bir bağlantı noktasında bir HTTP sunucusunu kullanıma sunmalıdır.

Azure CLI kullanarak özel bir kapsayıcı oturum havuzu oluşturmak için aşağıdaki komutlarla Azure CLI'nın en son sürümlerine ve Azure Container Apps uzantısına sahip olduğunuzdan emin olun:

az upgrade
az extension add --name containerapp --upgrade --allow-preview true -y

Özel kapsayıcı oturumu havuzları, iş yükü profilleri içeren bir Azure Container Apps ortamı gerektirir. Ortamınız yoksa, bir tane oluşturmak için az containerapp env create -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP> --location <LOCATION> komutunu kullanın.

az containerapp sessionpool create komutunu özel bir kapsayıcı oturum havuzu oluşturmak için kullanın.

Aşağıdaki örnek, özel kapsayıcı görüntüsüyle my-session-pooladlı myregistry.azurecr.io/my-container-image:1.0 bir oturum havuzu oluşturur.

İsteği göndermeden önce köşeli ayraçlar arasındaki <> yer tutucuları oturum havuzunuz ve oturum tanımlayıcınız için uygun değerlerle değiştirin.

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>

Bu komut aşağıdaki ayarlarla bir oturum havuzu oluşturur:

Parametre Değer Description
--name my-session-pool Oturum havuzunun adı.
--resource-group my-resource-group Oturum havuzunu içeren kaynak grubu.
--environment my-environment Kapsayıcı uygulamasının ortamının adı veya kaynak kimliği.
--container-type CustomContainer Oturum havuzunun container türü. Özel kapsayıcı oturumları için olmalıdır CustomContainer .
--image myregistry.azurecr.io/my-container-image:1.0 Oturum havuzu için kullanılacak kapsayıcı görüntüsü.
--registry-server myregistry.azurecr.io Kapsayıcı kayıt defteri sunucusu ana bilgisayar adı.
--registry-username my-username Kapsayıcı kayıt defterinde oturum açmak için kullanılan kullanıcı adı.
--registry-password my-password Kapsayıcı kayıt defterinde oturum açma parolası.
--cpu 0.25 Gerekli CPU çekirdek sayısı.
--memory 0.5Gi Gerekli bellek.
--target-port 80 Giriş trafiği için kullanılan oturum bağlantı noktası.
--cooldown-period 300 Oturumun sonlandırılmadan önce boşta bulunabileceği saniye sayısı. Oturumun API'si her çağrıldığında boşta kalma süresi sıfırlanır. Değer, 300 ile 3600 arasında olmalıdır.
--network-status EgressDisabled Oturumdan giden ağ trafiğine izin verilip verilmeyeceğini belirler. Geçerli değerler EgressDisabled (varsayılan) ve EgressEnabled'dir.
--max-sessions 10 Aynı anda ayrılabilecek en fazla oturum sayısı.
--ready-sessions 5 Oturum havuzunda her zaman hazır olan hedef oturum sayısı. Oturumlar, havuz yenilendiğinden daha hızlı tahsis edilirse bu sayıyı artırın.
--env-vars "key1=value1" "key2=value2" Kapsayıcıda ayarlanacağı ortam değişkenleri.
--location "Supported Location" Oturum havuzunun konumu.

Oturum havuzunun durumunu denetlemek için komutunu az containerapp sessionpool show kullanın:

az containerapp sessionpool show \
    --name <SESSION_POOL_NAME> \
    --resource-group <RESOURCE_GROUP> \
    --query "properties.poolManagementEndpoint" \
    --output tsv

Oturum havuzunu güncelleştirmek için komutunu kullanın az containerapp sessionpool update .

Önemli

Oturum güvenilmeyen kodu çalıştırmak için kullanılıyorsa, güvenilmeyen kodun erişmesini istemediğiniz bilgileri veya verileri eklemeyin. Kodun kötü amaçlı olduğunu ve kapsayıcıya ortam değişkenleri, gizli diziler ve dosyalar da dahil olmak üzere tam erişimi olduğunu varsayalım.

Yönetim uç noktası

Önemli

Oturum tanımlayıcısı, değerini oluşturup yönetirken güvenli bir işlem gerektiren hassas bilgilerdir. Bu değeri korumak için uygulamanızın her kullanıcının veya kiracının yalnızca kendi oturumlarına erişimi olduğundan emin olması gerekir.

Oturumlara erişimin güvenliğinin sağlanamaması, kullanıcılarınızın oturumlarında depolanan verilere yanlış veya yetkisiz erişime neden olabilir. Daha fazla bilgi için bkz . Oturum tanımlayıcıları

Havuzdaki oturumları yönetmek için aşağıdaki uç noktalar kullanılabilir:

Uç nokta yolu Yöntem Description
code/execute POST Bir oturumda kod yürütün.
files/upload POST Oturuma dosya yükleme.
files/content/{filename} GET Oturumdan dosya indirin.
files GET Oturumdaki dosyaları listeleme.

Havuzun yönetim API'si uç noktasını uç nokta yolu ile birleştirerek her uç nokta için tam URL oluşturursunuz. Sorgu dizesi oturum tanımlayıcısını içeren bir identifier parametre ve değerine api-versionsahip bir 2024-02-02-preview parametre içermelidir.

Örneğin: https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/code/execute?api-version=2024-02-02-preview&identifier=<IDENTIFIER>

Oturum havuzunun yönetim uç noktasını almak için komutunu az containerapp sessionpool show kullanın:

az containerapp sessionpool show \
    --name <SESSION_POOL_NAME> \
    --resource-group <RESOURCE_GROUP> \
    --query "properties.poolManagementEndpoint" \
    --output tsv

Havuz yönetimi uç noktasına yapılan tüm istekler bir taşıyıcı jeton içeren Authorization üst bilgi bulundurmalıdır. Havuz yönetimi API'siyle kimlik doğrulaması yapmayı öğrenmek için bkz. Kimlik doğrulaması.

Her API isteğinin oturum kimliğine sahip sorgu dizesi parametresini identifier de içermesi gerekir. Bu benzersiz oturum kimliği, uygulamanızın belirli oturumlarla etkileşim kurmasını sağlar. Oturum tanımlayıcıları hakkında daha fazla bilgi edinmek için bkz. Oturum tanımlayıcıları.

Görüntü önbelleğe alma

Bir oturum havuzu oluşturulduğunda veya güncelleştirildiğinde, Azure Container Apps havuzdaki kapsayıcı görüntüsünü önbelleğe alır. Bu önbelleğe alma, yeni oturum oluşturma işlemini hızlandırmaya yardımcı olur.

Görüntüde yapılan değişiklikler oturumlara otomatik olarak yansıtılmaz. Görüntüyü güncelleştirmek için oturum havuzunu yeni bir görüntü etiketiyle güncelleştirin. Yeni görüntünün çekildiğinden emin olmak için her görüntü güncelleştirmesi için benzersiz bir etiket kullanın.