E2B ve Bulut Korumalı Alan Hizmetleri
Kod yorumlayıcı aracıları için E2B SDK, Daytona ve yönetilen korumalı alan API'leri.
E2B ve Bulut Korumalı Alan Hizmetleri, CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.
E2B Nedir?
E2B (Oluşturma Ortamları), özellikle yapay zekâ kod ajanları için tasarlanmış bir bulut korumalı alan hizmetidir. Docker'ı veya VM'leri kendiniz yönetmeden, basit bir Python/JS SDK aracılığıyla erişilebilen güvenli ve yalıtılmış ortamlar sağlar.
Her korumalı alan, E2B'nin bulutundaki bir Firecracker microVM'dir.
# Install the SDK
# pip install e2b-code-interpreter
from e2b_code_interpreter import Sandbox
sandbox = Sandbox() # creates a new cloud sandbox
print('Sandbox ID:', sandbox.sandbox_id)Korumalı Alanda Kod Çalıştırma
Sandbox nesnesi, Python kodunu yürüten ve standart çıktı, standart hata ve zengin görüntüleme nesnelerini (grafikler, veri çerçeveleri) içeren yapılandırılmış çıktı döndüren bir run_code() işlevi sağlar.
from e2b_code_interpreter import Sandbox
with Sandbox() as sandbox:
result = sandbox.run_code('print(2 ** 10)')
print(result.logs.stdout) # ['1024']
print(result.error) # None if no errorHataları ve İstisnaları Ele Alma
Kod bir istisna oluşturursa result.error geri izlemeyle doldurulur. Korumalı alan çalışmayı sürdürür; hatayı düzeltmek için sonraki kodu gönderebilirsiniz.
from e2b_code_interpreter import Sandbox
with Sandbox() as sandbox:
result = sandbox.run_code('1 / 0')
if result.error:
print('Error name:', result.error.name) # ZeroDivisionError
print('Traceback:', result.error.traceback)
else:
print(result.logs.stdout)Korumalı Alana Dosya Yükleme
Analiz kodunu çalıştırmadan önce veri dosyalarını (CSV, JSON, görseller) korumalı alanın dosya sistemine yüklemek için sandbox.files.write() işlevini kullanın.
from e2b_code_interpreter import Sandbox
csv_content = 'name,score\nAlice,95\nBob,87\nCarol,92'
with Sandbox() as sandbox:
sandbox.files.write('/home/user/data.csv', csv_content.encode())
result = sandbox.run_code(
'import csv\n'
'rows = list(csv.DictReader(open("/home/user/data.csv")))\n'
'print([r["name"] for r in rows])'
)
print(result.logs.stdout) # ["['Alice', 'Bob', 'Carol']"]Korumalı Alandan Dosya İndirme
Hesaplama sonrasında çıktı dosyalarını (raporlar, grafikler, işlenmiş veriler) sandbox.files.read() ile alın. Dosya baytlar olarak döndürülür.
from e2b_code_interpreter import Sandbox
import json
with Sandbox() as sandbox:
sandbox.run_code(
'import json\n'
'result = {"mean": 91.3, "max": 95}\n'
'json.dump(result, open("/home/user/output.json", "w"))'
)
data = sandbox.files.read('/home/user/output.json')
parsed = json.loads(data)
print(parsed) # {'mean': 91.3, 'max': 95}Çalışma Zamanında Paket Yükleme
E2B korumalı alanları Python önceden yüklenmiş olarak gelir. Bir pip komutu çalıştırarak run_code() ile ek paketler yükleyin, ardından aynı korumalı alan oturumundaki sonraki çağrılarda bu paketi kullanın.
from e2b_code_interpreter import Sandbox
with Sandbox() as sandbox:
# Install pandas inside the sandbox
sandbox.run_code('import subprocess; subprocess.run(["pip", "install", "pandas", "-q"])')
# Now use pandas
result = sandbox.run_code(
'import pandas as pd\n'
'df = pd.DataFrame({"x": [1,2,3], "y": [4,5,6]})\n'
'print(df.describe())'
)
print(result.logs.stdout)Kalıcı ve Geçici Korumalı Alanlar
E2B iki korumalı alan yaşam döngüsü modunu destekler:
- Geçici:
withbloğu sona erdiğinde korumalı alan yok edilir. Tek seferlik kod yürütme için kullanın. - Kalıcı: korumalı alan birden fazla istek boyunca çalışır durumda kalır. Durumun ajan turları boyunca birikmesi gerektiğinde kullanın.
from e2b_code_interpreter import Sandbox
# Ephemeral (default context manager)
with Sandbox() as sb:
sb.run_code('x = 42')
# Sandbox destroyed here
# Persistent: keep alive for N seconds
sb = Sandbox(timeout=300) # keep alive 5 minutes
try:
sb.run_code('import numpy as np') # expensive import cached
sb.run_code('arr = np.arange(1000)')
result = sb.run_code('print(arr.mean())')
print(result.logs.stdout)
finally:
sb.kill() # explicit cleanupÇalışan Korumalı Alana Yeniden Bağlanma
Ajan süreciniz yeniden başlatılırsa veya korumalı alan kimliği başka bir hizmete aktarılırsa, durum kaybı yaşamadan mevcut bir korumalı alana kimliğini kullanarak yeniden bağlanabilirsiniz.
from e2b_code_interpreter import Sandbox
# First session
sb1 = Sandbox(timeout=300)
sb1.run_code('accumulated_data = []')
sandbox_id = sb1.sandbox_id
print('Created:', sandbox_id)
# Later — different process, same sandbox
sb2 = Sandbox.connect(sandbox_id)
result = sb2.run_code('accumulated_data.append(1); print(accumulated_data)')
print(result.logs.stdout) # '[1]' — state preserved
sb2.kill()E2B Fiyatlandırma Modeli
E2B, ücretlendirmeyi korumalı alan saniyesi üzerinden yapar; yalnızca kodun çalıştığı süreyi değil, korumalı alanın etkin olduğu süreyi temel alır. Temel fiyatlandırma etkenleri şunlardır:
- Korumalı alan kalıcıysa boşta geçen süre de ücretlendirilir
- Geçici korumalı alanlar oluşturulmalarından yok edilmelerine kadar ücretlendirilir
- Ağ çıkışı ayrıca ücretlendirilebilir
- Otomatik sonlandırma süresi belirlemek için
timeoutkullanın
# Cost-optimization patterns:
# 1. Use short timeouts for one-shot executions
with Sandbox(timeout=60) as sb:
result = sb.run_code('print("done")')
# Auto-kills after 60s if not killed first
# 2. Kill immediately after use
sb = Sandbox()
try:
sb.run_code('process_data()')
finally:
sb.kill() # don't wait for timeout
# 3. Share one sandbox across multiple agent steps
# instead of creating a new one per stepAjan Döngüsünde E2B Kullanma
Çok turlu bir ajanda korumalı alanı bir kez oluşturun ve kimliğini döngü boyunca aktarın. LLM tarafından oluşturulan her kod parçacığı aynı oturumda çalışır; böylece değişkenler ve yüklenen paketler turlar arasında korunur.
from e2b_code_interpreter import Sandbox
import openai
client = openai.OpenAI(api_key='YOUR_OPENAI_KEY')
def run_agent(user_question: str):
with Sandbox(timeout=120) as sb:
messages = [{'role': 'user', 'content': user_question}]
for _ in range(5): # max 5 turns
resp = client.chat.completions.create(
model='gpt-4o', messages=messages,
tools=[{'type': 'function', 'function': {
'name': 'run_python',
'description': 'Execute Python in a secure sandbox',
'parameters': {'type': 'object',
'properties': {'code': {'type': 'string'}},
'required': ['code']}
}}]
)
msg = resp.choices[0].message
if msg.tool_calls:
code = eval(msg.tool_calls[0].function.arguments)['code']
result = sb.run_code(code)
messages.append({'role': 'tool',
'tool_call_id': msg.tool_calls[0].id,
'content': str(result.logs.stdout)})
else:
return msg.contentAlternatif Bulut Korumalı Alan Hizmetleri
E2B tek seçenek değildir. Diğer bulut korumalı alan hizmetleri şunlardır:
- Modal: sunucusuz GPU/CPU korumalı alanları, özel Docker imajları
- AWS Lambda: her çağrı için yürütme yalıtımı (perde arkasında Firecracker kullanır)
- Code Interpreter API: OpenAI'nin ChatGPT araçları için yerleşik korumalı alanı
- Daytona: Git entegrasyonuna sahip geliştirme korumalı alanları
Geçici Bir E2B Korumalı Alanı Bağlam Yöneticisinden Çıktığında Değişkenlere Ne Olur?
Çok turlu ajan konuşmalarında geçici veya kalıcı korumalı alanları ne zaman kullanacağınıza karar vermek için korumalı alanın yaşam döngüsünü anlamak kritik öneme sahiptir.
E2B Bulut Korumalı Alanları Özeti
E2B, bulutta barındırılan Firecracker microVM korumalı alanları için basit bir SDK sağlar. Temel kullanım biçimleri şunlardır: tek seferlik kod için geçici korumalı alanlar, çok turlu ajanlar için kalıcı korumalı alanlar, veri giriş ve çıkışı için dosya yükleme/indirme ve hizmetler arası iş akışları için kimlikle yeniden bağlanma.
Gereksiz ücretlendirmeyi önlemek için korumalı alanları her zaman açıkça sonlandırın.
Sıkça Sorulan Sorular
“E2B ve Bulut Korumalı Alan Hizmetleri” dersi ücretsiz mi?
Evet — “E2B ve Bulut Korumalı Alan Hizmetleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.
“E2B ve Bulut Korumalı Alan Hizmetleri” dersinde ne öğreneceğim?
Kod yorumlayıcı aracıları için E2B SDK, Daytona ve yönetilen korumalı alan API'leri. AI Agents ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Agents öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Agents, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“E2B ve Bulut Korumalı Alan Hizmetleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Agents dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Agents dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Docker Tabanlı Aracı Korumalı Alanları
- Yüksek Güvenlikli Kod Aracıları İçin VM Yalıtımı
- E2B ve Bulut Korumalı Alan Hizmetleri
- Kod Çalıştırma İçin Güvenlik İlkeleri