Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Container Apps dinamik oturumları , bir kod yorumlayıcıya hızlı ve ölçeklenebilir erişim sağlar. Her kod yorumlayıcı oturumu bir Hyper-V sınırı tarafından tamamen yalıtılır ve güvenilmeyen kodu çalıştıracak şekilde tasarlanmıştır.
Kod yorumlayıcı oturumları için kullanılır
Kod yorumlayıcı oturumları, kötü amaçlı olabilecek veya konak sistemine veya diğer kullanıcılara zarar verebilecek kodu çalıştırmanız gereken senaryolar için idealdir, örneğin:
- Büyük bir dil modeli (LLM) tarafından oluşturulan kod.
- Web veya SaaS uygulamasında son kullanıcı tarafından gönderilen kod.
LangChain, LlamaIndex ve Semantik Çekirdek gibi popüler LLM çerçeveleri için, yapay zeka uygulamalarını kod yorumlayıcı oturumlarıyla tümleştirmek için araçları ve eklentileri kullanabilirsiniz.
Uygulamalarınız rest API kullanarak kod yorumlayıcı oturumuyla da tümleştirebilir. API şunları kullanmanıza olanak tanır:
Bir oturumda kod çalıştırın ve sonuçları alın.
Oturum başlatma ve bitirme sırasında dosyaları yükleyip indirin.
Kodunuzun işleyebileceği yürütülebilir kod dosyalarını veya veri dosyalarını karşıya yükleyebilir ve indirebilirsiniz.
Yerleşik kod yorumlayıcı oturumları, altyapıyı veya kapsayıcıları yönetmenize gerek kalmadan en yaygın kod yürütme senaryolarını destekler.
Kod yürütme ortamı üzerinde tam denetime ihtiyacınız varsa veya yalıtılmış korumalı alan gerektiren farklı bir senaryonuz varsa, özel kod yorumlayıcı oturumları kullanabilirsiniz.
Kod yorumlayıcı oturum havuzu
Kod yorumlayıcı oturumlarını kullanmak için, kod yorumlayıcı oturumlarının yapılandırmasını tanımlayan oturum havuzu adlı bir Azure kaynağına ihtiyacınız vardır.
Oturum havuzunda, en fazla eşzamanlı oturum sayısı ve oturum durdurulmadan önce oturumun ne kadar süre boşta durabileceği gibi ayarları belirtebilirsiniz.
Azure portalını, Azure CLI'yı veya Azure Resource Manager şablonlarını kullanarak oturum havuzu oluşturabilirsiniz. Oturum havuzu oluşturduktan sonra, havuzun yönetim API'sinin uç noktalarını kullanarak bir oturumun içindeki kodu yönetebilir ve çalıştırabilirsiniz.
Oturum havuzu oluşturma ve yapılandırma hakkında daha fazla bilgi için bkz. Oturum havuzlarını kullanma.
Oturumda kod yürütme
Bir oturum havuzu oluşturduktan sonra, uygulamanız bir LLM çerçevesiyle tümleştirme kullanarak veya havuzun yönetim API'sinin uç noktalarını doğrudan kullanarak havuzdaki oturumlarla etkileşimde bulunabilir.
Oturum tanımlayıcıları
Önemli
Oturum tanımlayıcısı hassas bilgilerdir. Değerini yönetmek için güvenli bir işlem kullanmanız gerekir. Bu işlemin bir parçası, uygulamanızın her kullanıcının veya kiracının yalnızca kendi oturumlarına erişimi olduğundan emin olmaktır.
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 oturumlarla etkileşim kurarken, her oturuma başvurmak için bir oturum tanımlayıcısı kullanırsınız. Oturum tanımlayıcısı, oturum havuzu içinde benzersiz olan, tanımladığınız bir dizedir. Web uygulaması oluşturuyorsanız kullanıcının kimliğini kullanabilirsiniz. Sohbet botu oluşturuyorsanız konuşma kimliğini kullanabilirsiniz.
Tanımlayıcı ile çalışan bir oturum varsa, oturum yeniden kullanılır. Tanımlayıcıyla çalışan bir oturum yoksa, otomatik olarak yeni bir oturum oluşturulur.
Kimlik Doğrulaması
Kimlik doğrulaması Microsoft Entra belirteçleri aracılığıyla işlenir. Geçerli Microsoft Entra belirteçleri, oturum havuzundaki Azure ContainerApps Oturum Yürütücüsü ve Katkıda Bulunan rollerine ait bir kimlik tarafından oluşturulur.
LLM çerçeve entegrasyonu kullanıyorsanız, çerçeve sizin için belirteç oluşturma ve yönetimini işler. Uygulamanın, oturum havuzunda gerekli rol atamalarına sahip yönetilen bir kimlikle yapılandırıldığından emin olun.
Havuzun yönetim API'sinin uç noktalarını doğrudan kullanıyorsanız, bir belirteç oluşturmanız ve bunu Authorization HTTP isteklerinizin üst bilgisine eklemeniz gerekir. Daha önce bahsedilen rol atamalarına ek olarak, belirtecin aud değerine sahip bir hedef kitle (https://dynamicsessions.io) talebi içermesi gerekir.
Daha fazla bilgi için bkz . Kimlik doğrulaması ve yetkilendirme.
Dosyalarla çalışma
Dosyaları karşıya yükleyip indirebilir ve kod yorumlayıcı oturumundaki tüm dosyaları listeleyebilirsiniz.
Desteklenen karakterler
Dosya adları ve yolları yalnızca aşağıdaki desteklenen karakterleri kullanmalıdır:
- Büyük ve küçük harfler:
A-Z,a-z. - Basamaklar:
0-9. - Özel karakterler:
-,_,,.,@,$,&,=,;,,,#,%,^,(,). Yollar.içeremez. - Unicode karakterler: Çince, Japonca ve diğer uluslararası karakterleri içerir.
Dosya yükle
Bir dosyayı bir oturuma yüklemek için POST çok parçalı form veri isteğinde uç noktaya bir istek gönderinfiles. Dosya verilerini istek gövdesine ekleyin. Dosya bir dosya adı içermelidir.
Karşıya yüklenen dosyalar, oturumun dosya sisteminin /mnt/data dizininde depolanır.
Aşağıdaki örnekte bir dosyanın oturuma nasıl yüklendiği 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://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Authorization: Bearer <TOKEN>
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="<FILE_NAME_AND_EXTENSION>"
Content-Type: application/octet-stream
(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Dosya indirme
Oturumun /mnt/data dizininden dosya indirmek için GET uç noktaya bir files/{filename}/content istek gönderin. Yanıt, dosya verilerini içerir.
Aşağıdaki örnek, bir dosyayı indirme isteğinin nasıl biçimlendirileceğini GET ile gösterir.
İsteği göndermeden önce köşeli ayraçlar arasındaki <> yer tutucuları isteğinize özgü değerlerle değiştirin.
GET https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files/<FILE_NAME_AND_EXTENSION>/content?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Authorization: Bearer <TOKEN>
Dosya meta verilerini alma
Oturumun /mnt/data dizinindeki bir dosyanın meta verilerini almak için uç noktaya bir GET istek files/{filename} gönderin. Yanıt, boyut ve son değiştirme zamanı gibi dosya özelliklerini içerir.
Aşağıdaki örnekte, dosya meta verilerini almak için isteğin GET nasıl biçimlendirilir gösterilmektedir.
İsteği göndermeden önce köşeli ayraçlar arasındaki <> yer tutucuları isteğinize özgü değerlerle değiştirin.
GET https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files/<FILE_NAME_AND_EXTENSION>?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Authorization: Bearer <TOKEN>
Dosyaları listeleme
Oturumun /mnt/data dizinindeki dosyaları listelemek için GET uç noktaya bir files istek gönderin.
Aşağıdaki örnek, bir oturumun dizinindeki dosyaların nasıl liste yapılacağını gösterir.
İsteği göndermeden önce köşeli ayraçlar arasındaki <> yer tutucuları isteğinize özgü değerlerle değiştirin.
GET https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Authorization: Bearer <TOKEN>
Yanıt, oturumdaki dosyaların listesini içerir.
Aşağıdaki listede, oturum içeriği istediğinizde karşılaşabileceğiniz yanıt türünün bir örneği gösterilmektedir.
{
"$id": "1",
"value": [
{
"$id": "2",
"properties": {
"$id": "3",
"filename": "test1.txt",
"size": 16,
"lastModifiedTime": "2024-05-02T07:21:07.9922617Z"
}
},
{
"$id": "4",
"properties": {
"$id": "5",
"filename": "test2.txt",
"size": 17,
"lastModifiedTime": "2024-05-02T07:21:08.8802793Z"
}
}
]
}
Güvenlik
Kod yorumlayıcı oturumları, uygulamalarınızın ve verilerinizin korunduğundan emin olmak için yalıtılmış ortamlarda güvenilmeyen kod çalıştıracak şekilde tasarlanmıştır.
LLM çerçevesi entegrasyonları
Oturum havuzu yönetimi API'sini doğrudan kullanmak yerine, kod yorumlayıcı oturumlarıyla tümleştirmeler sağlayan aşağıdaki LLM çerçevelerini kullanabilirsiniz.
| Çerçeve | Paket | Kılavuz |
|---|---|---|
| LangChain | Piton: langchain-azure-dynamic-sessions |
Eğitim |
| LlamaIndex | Piton: llama-index-tools-azure-code-interpreter |
Eğitim |
| Semantik Çekirdek | Python: semantic-kernel (sürüm 0.9.8-b1 veya üzeri) |
Eğitim |
Yönetim API'leri uç noktaları
LLM çerçevesi tümleştirmesi kullanmıyorsanız yönetim API'sinin uç noktalarını kullanarak oturum havuzuyla doğrudan etkileşim kurabilirsiniz.
Oturumda kod çalıştırma
Bir oturumda kod çalıştırmak için POST uç noktaya istek gövdesinde çalıştırılacak kodu içeren bir executions istek gönderin. Her kod yürütmesi en fazla 220 saniyelik çalışma zamanıyla sınırlıdır.
Aşağıdaki örnek, Python'da Hello, world! ifadesini yazdırır.
İ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.
POST https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/executions?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Content-Type: application/json
Authorization: Bearer <TOKEN>
{
"properties": {
"codeInputType": "inline",
"executionType": "synchronous",
"code": "print('Hello, world!')"
}
}
Oturumu yeniden kullanmak için sonraki isteklerde aynı oturum tanımlayıcısını belirtin.
Oturuma dosya yükleme
Bir dosyayı bir oturuma yüklemek için POST çok parçalı form veri isteğinde uç noktaya bir istek gönderinfiles. Dosya verilerini istek gövdesine ekleyin. Dosya bir dosya adı içermelidir.
Karşıya yüklenen dosyalar, oturumun dosya sisteminin /mnt/data dizininde depolanır.
İsteği göndermeden önce köşeli ayraçlar arasındaki <> yer tutucuları isteğinize özgü değerlerle değiştirin.
POST https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Authorization: Bearer <TOKEN>
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="<FILE_NAME_AND_EXTENSION>"
Content-Type: application/octet-stream
(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Not
Dosya karşıya yükleme sınırı 128 MB'tır. Bu sınır aşılırsa HTTP 413 hatası alabilirsiniz.
Oturumdan dosya indirme
Oturumun /mnt/data dizininden dosya indirmek için GET uç noktaya bir files/{filename}/content istek gönderin. Yanıt, dosya verilerini içerir.
İsteği göndermeden önce köşeli ayraçlar arasındaki <> yer tutucuları isteğinize özgü değerlerle değiştirin.
GET https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files/<FILE_NAME_AND_EXTENSION>/content?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Authorization: Bearer <TOKEN>
Dosya meta verilerini alma
Oturumun /mnt/data dizinindeki bir dosyanın meta verilerini almak için uç noktaya bir GET istek files/{filename} gönderin. Yanıt, boyut ve son değiştirme zamanı gibi dosya özelliklerini içerir.
İsteği göndermeden önce köşeli ayraçlar arasındaki <> yer tutucuları isteğinize özgü değerlerle değiştirin.
GET https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files/<FILE_NAME_AND_EXTENSION>?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Authorization: Bearer <TOKEN>
Oturumdaki dosyaları listeleme
Oturumun /mnt/data dizinindeki dosyaları listelemek için GET uç noktaya bir files istek gönderin.
İsteği göndermeden önce köşeli ayraçlar arasındaki <> yer tutucuları isteğinize özgü değerlerle değiştirin.
GET https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/files?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Authorization: Bearer <TOKEN>
Yanıt, oturumdaki dosyaların listesini içerir.
Aşağıda, oturum içeriği istediğinizde bekleyebileceğiniz yanıt türüne bir örnek verilmiştir.
{
"$id": "1",
"value": [
{
"$id": "2",
"properties": {
"$id": "3",
"filename": "test1.txt",
"size": 16,
"lastModifiedTime": "2024-05-02T07:21:07.9922617Z"
}
},
{
"$id": "4",
"properties": {
"$id": "5",
"filename": "test2.txt",
"size": 17,
"lastModifiedTime": "2024-05-02T07:21:08.8802793Z"
}
}
]
}
Önceden yüklenmiş paketler
Python kod yorumlayıcı oturumları NumPy, pandas ve scikit-learn gibi popüler Python paketlerini içerir.
Önceden yüklenmiş paketlerin listesinin çıktısını almak için uç noktayı aşağıdaki kodla çağırın executions .
İsteği göndermeden önce köşeli ayraçlar arasındaki <> yer tutucuları isteğinize özgü değerlerle değiştirin.
POST https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>/executions?api-version=2025-10-02-preview&identifier=<SESSION_ID>
Content-Type: application/json
Authorization: Bearer <TOKEN>
{
"properties": {
"codeInputType": "inline",
"executionType": "synchronous",
"code": "import pkg_resources\n[(d.project_name, d.version) for d in pkg_resources.working_set]"
}
}
Loglama
Kullanılabilir çıkışlar, kod yürütmesinden döndürdüğünüz sonuçlardır, stdout ve stderr dahil olmak üzere.
İstek veya yanıt izlemesi gerekiyorsa, bunu oturum havuzu yönetimi API'sini çağıran uygulamada yakalayın (örneğin, uygulama sınırınızda istek kimliklerini, girişleri ve yanıtları günlükleyin).
Not
Kod yorumlayıcı oturumları, Log Analytics'e AppEnvSession günlüklerini yaymaz.
Metrics
Kod yorumlayıcı kullanımı ve yürütme ölçümleri, kod yürütme API'sinin HTTP yanıt üst bilgileri olarak döndürülür. Bu ölçümler Log Analytics'e yazılamaz.
Ölçümleri görüntüleme
- Kod yürütme API'sini (
/executions) çağırın. - Kullanım ve yürütme ölçümleri için HTTP yanıt üst bilgilerini inceleyin.
Kod yürütme API'si ve uç noktaları hakkında ayrıntılı bilgi için bkz. Oturumda kod çalıştırma ve Yönetim API'si uç noktaları.
Faturalandırma
Kod yorumlayıcı oturumları, her oturumun süresine göre faturalandırılır. Daha fazla bilgi için bkz . Faturalama.