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.
Ö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 yürütmenize veya uygulamaları çalıştırmanıza ve Hyper-V ile güvenli, korumalı alanlar sunmanıza olanak tanır. 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 dille güvenli korumalı alanlarda güvenilmeyen kod yürütmeniz gerektiğinde veya kod yorumlayıcı ortamı üzerinde tam denetime ihtiyacınız olduğunda.
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ırmanız gerektiğinde. 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 önce özel kapsayıcı görüntüsüne sahip bir oturum havuzu oluşturursunuz. 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 oturum istediğinde, havuzdan anında bir örnek ayrılır. Oturum, boşta durumuna girene kadar etkin kalır ve bu durum otomatik olarak durdurulur ve yok edilir.
Özel kapsayıcı oturum havuzu oluşturma
Özel kapsayıcı oturumu havuzu oluşturmak için bir kapsayıcı görüntüsü ve havuz yapılandırma ayarları 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ü profilinin etkinleştirildiği bir Azure Container Apps ortamı gerektirir. Ortamınız yoksa, oluşturmak için komutunu kullanın az containerapp env create -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP> --location <LOCATION> --enable-workload-profiles
.
az containerapp sessionpool create
Özel kapsayıcı oturum havuzu oluşturmak için komutunu kullanın.
Aşağıdaki örnek, özel kapsayıcı görüntüsüyle myregistry.azurecr.io/my-container-image:1.0
adlı my-session-pool
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 | Açıklama |
---|---|---|
--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 kapsayıcı 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 |
Çekirdeklerde gerekli CPU. |
--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 ile 3600 arasında 300 olmalıdır. |
--network-status |
EgressDisabled |
Oturumdan giden ağ trafiğine izin verilip verilmeyeceğini belirler. Geçerli değerler (varsayılan) ve EgressEnabled değerleridir EgressDisabled . |
--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ı ayrılırsa 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.
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ılır. 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.
Oturumlarla çalışma
Uygulamanız, oturum havuzunun yönetim API'sini kullanarak bir oturumla etkileşim kurar.
Özel kapsayıcı oturumları için havuz yönetimi uç noktası şu biçimi izler: https://<SESSION_POOL>.<ENVIRONMENT_ID>.<REGION>.azurecontainerapps.io
.
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 taşıyıcı belirteci olan bir Authorization
üst bilgi içermelidir. 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ı.
Ö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ı
İstekleri oturumun kapsayıcısına iletme:
Temel havuz yönetim uç noktasını izleyen yoldaki her şey oturumun kapsayıcısına iletilir.
Örneğin, öğesine <POOL_MANAGEMENT_ENDPOINT>/api/uploadfile
bir çağrı yaparsanız istek konumundaki oturumun kapsayıcısına 0.0.0.0:<TARGET_PORT>/api/uploadfile
yönlendirilir.
Sürekli oturum etkileşimi:
Aynı oturuma istekte bulunmaya devam edebilirsiniz. Oturuma bekleme süresinden daha uzun bir süre için istek yoksa oturum otomatik olarak silinir.
Örnek isteği
Aşağıdaki örnekte, kullanıcı kimliğine göre özel kapsayıcı oturumuna yapılan istek gösterilmektedir.
İsteği göndermeden önce köşeli ayraçlar arasındaki <>
yer tutucuları isteğinize özgü değerlerle değiştirin.
POST https://<SESSION_POOL_NAME>.<ENVIRONMENT_ID>.<REGION>.azurecontainerapps.io/<API_PATH_EXPOSED_BY_CONTAINER>?identifier=<USER_ID>
Authorization: Bearer <TOKEN>
{
"command": "echo 'Hello, world!'"
}
Bu istek, kullanıcının kimliğinin tanımlayıcısı ile özel kapsayıcı oturumuna iletilir. Oturum henüz çalışmıyorsa Azure Container Apps, isteği iletmeden önce havuzdan bir oturum ayırır.
Örnekte, oturumun kapsayıcısı isteği adresinden http://0.0.0.0:<INGRESS_PORT>/<API_PATH_EXPOSED_BY_CONTAINER>
alır.
Yönetilen kimliği kullanma
Microsoft Entra Id'den yönetilen kimlik, özel kapsayıcı oturum havuzlarınızın ve bunların oturumlarının diğer Microsoft Entra korumalı kaynaklara erişmesine olanak tanır. Microsoft Entra Id'deki yönetilen kimlikler hakkında daha fazla bilgi için bkz . Azure kaynakları için yönetilen kimlikler.
Özel kapsayıcı oturum havuzlarınız için yönetilen kimlikleri etkinleştirebilirsiniz. Hem sistem tarafından atanan hem de kullanıcı tarafından atanan yönetilen kimlikler desteklenir.
Yönetilen kimlikleri özel kapsayıcı oturumu havuzlarıyla kullanmanın iki yolu vardır:
Görüntü çekme kimlik doğrulaması: Kapsayıcı görüntüsünü çekmek için kapsayıcı kayıt defteriyle kimlik doğrulaması yapmak için yönetilen kimliği kullanın.
Kaynak erişimi: Diğer Microsoft Entra korumalı kaynaklara erişmek için oturum havuzunun yönetilen kimliğini bir oturumda kullanın. Güvenlik etkilerinden dolayı, bu özellik varsayılan olarak devre dışı bırakılır.
Önemli
Bir oturumda yönetilen kimliğe erişimi etkinleştirirseniz, oturumda çalışan tüm kodlar veya programlar havuzun yönetilen kimliği için Entra belirteçleri oluşturabilir. Oturumlar genellikle güvenilmeyen kod çalıştırdığından bu özelliği dikkatli kullanın.
Özel kapsayıcı oturum havuzu için yönetilen kimliği etkinleştirmek için Azure Resource Manager'ı kullanın.
Günlük Kaydı
Özel kapsayıcı oturumlarından konsol günlükleri, adlı AppEnvSessionConsoleLogs_CL
bir tablodaki Azure Container Apps ortamıyla ilişkili Azure Log Analytics çalışma alanında kullanılabilir.
Faturalandırma
Özel kapsayıcı oturumları, oturum havuzu tarafından kullanılan kaynaklara göre faturalandırılır. Daha fazla bilgi için bkz . Azure Container Apps faturalaması.