Dynamic Workers
Worker kodunu çalışma anında oluşturup çalıştırır; kullanıcı veya AI tarafından üretilen kod için.
- DurumAçık beta
- FiyatBenzersiz Dynamic Worker sayısı (gün başına) + temel Workers kullanımı
- Doğrulama
Dynamic Workers nedir?
Normal bir Worker’ın hayatı şöyledir: kodu yaz → wrangler deploy → yayına çık → çalış.
Bu döngü saniyeler sürer ve çoğu senaryo için sorunsuzdur.
Ama bazı senaryolarda kod istek anında ortaya çıkar. Bir yapay zekâ ajanı kullanıcının isteğine göre bir dönüşüm fonksiyonu üretir. Bir kullanıcı arayüzde kod yazar ve “çalıştır”a basar. Bu durumlarda deploy döngüsü bir engeldir.
Dynamic Workers bu adımı kaldırır: kodu bir string olarak verirsin, çalışır.
Nasıl çalışır?
Kod çalışma anında bir V8 isolate’ine yüklenir. Deploy adımı, sürüm kaydı ve bekleme süresi yoktur — normal Workers’ın isolate başlatma hızı burada da geçerlidir.
Karşılığında kaybettiklerin: kalıcı bir Worker kimliği, sürüm geçmişi, rollback ve deploy’a bağlı gözlemlenebilirlik.
Üç yakın ürünle karşılaştırma
Bu üç ürün sık karıştırılıyor. Ayrım net:
| Ne verir | Cold start | Kod nereden | Ne zaman | |
|---|---|---|---|---|
| Dynamic Workers | V8 isolate | ~0 ms | Çalışma anında üretilir | LLM JavaScript üretiyorsa |
| Sandboxes | Tam Linux container | 1–3 sn | Çalışma anında üretilir | LLM Python üretiyorsa, kabuk gerekiyorsa |
| Workers for Platforms | V8 isolate | ~0 ms | Önceden yüklenir, kalıcı | Müşteri eklenti ekosistemi kuruyorsan |
Basit kural: kod kalıcıysa Workers for Platforms, geçici ve JavaScript ise Dynamic Workers, geçici ve başka bir dil veya kabuk gerekiyorsa Sandboxes.
Ne zaman kullanılır, ne zaman kullanılmaz
Uygun olduğu işler
- Yapay zekâ ajanının ürettiği JavaScript mantığını çalıştırmak
- Kullanıcının arayüzde yazdığı dönüşüm fonksiyonunu anında denemek
- Kısa ömürlü, tek kullanımlık kod parçaları
- Deploy döngüsünün kabul edilemez bir gecikme olduğu etkileşimli senaryolar
Uygun olmadığı işler
- Kalıcı, sürümlenmesi gereken müşteri kodu. Workers for Platforms kullan.
- JavaScript dışı diller. Sandboxes kullan.
- Dosya sistemi veya kabuk gerektiren kod. Yine Sandboxes.
- Kritik üretim yolu. Beta ve SLA’sız.
- Ücretsiz plan. Kullanılamaz.
- Çok sayıda farklı kod parçasının sürekli üretildiği sistemler. Fatura benzersiz Worker sayısına bağlı; kontrolsüz üretim pahalıya gelir.
Somut örnekler
1. LLM’in ürettiği dönüşümü çalıştırma
export default {
async fetch(request, env) {
const { istek, veri } = await request.json();
// 1. LLM'den dönüşüm kodu iste
const uretim = await env.AI.run("@cf/meta/llama-3.1-8b-instruct", {
messages: [{
role: "user",
content: `Şu isteği karşılayan bir JavaScript fonksiyonu yaz. ` +
`Yalnızca kod döndür, açıklama yazma.\n\nİstek: ${istek}`,
}],
});
// 2. Aynı kod aynı Worker'a düşsün — fatura benzersiz sayıya bağlı
const kodHash = await hashla(uretim.response);
// 3. Deploy olmadan çalıştır
const sonuc = await env.DINAMIK.run(uretim.response, {
id: kodHash,
input: veri,
limits: { cpuMs: 50 }, // güvenilmeyen koda dar sınır
});
return Response.json({ sonuc, kodHash });
},
};
async function hashla(metin) {
const buf = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(metin));
return [...new Uint8Array(buf)].map((b) => b.toString(16).padStart(2, "0")).join("").slice(0, 32);
}
2. Binding vermeyerek tamamen izole çalıştırma
// Hiçbir binding verilmezse kod hiçbir kaynağa erişemez —
// ne KV, ne D1, ne R2, ne de dış ağ.
const sonuc = await env.DINAMIK.run(guvenilmeyenKod, {
id: kodHash,
input: { sayilar: [1, 2, 3] },
bindings: {}, // boş: saf hesaplama
limits: { cpuMs: 10 },
});
3. Sınırlı binding ile çalıştırma
// Kod yalnızca kendi kiracısının verisine erişebilsin
const sonuc = await env.DINAMIK.run(kullaniciKodu, {
id: kodHash,
bindings: {
VERI: env.KIRACI_KV, // yalnızca bu KV
KIRACI_ID: kiraciId, // kod bunu değiştiremez
},
limits: { cpuMs: 50 },
});
4. Üretilen kodu saklama — hata ayıklama için
// Kod deploy edilmediği için sürüm geçmişi yok.
// Hangi kodun çalıştığını sonradan bulabilmek için kendin sakla.
await env.KOD_ARSIVI.put(kodHash, uretilenKod, {
metadata: { uretildi: Date.now(), istek, model: "llama-3.1-8b" },
expirationTtl: 60 * 60 * 24 * 30,
});
Demo 1: LLM’in ürettiği kodu deploy etmeden çalıştırma
Adım 1 — Binding kurulumu
Adım 2 — Kod ürettir ve çalıştır
curl -X POST http://localhost:8787/calistir \
-H 'content-type: application/json' \
-d '{"istek":"dizideki tek sayıları topla","veri":{"sayilar":[1,2,3,4,5]}}'
Adım 3 — Aynı kodu tekrar çalıştır
Adım 4 — Panelde kullanımı gör
Demo 2: İzolasyon ve maliyet kontrolü
Adım 1 — Binding’siz çalıştırma
Kötü niyetli bir kod parçası vererek hiçbir kaynağa erişemediğini göster.
Adım 2 — CPU sınırını test et
Sonsuz döngü içeren bir kod parçası çalıştır.
Adım 3 — Hash tekrar kullanımının fatura etkisi
Aynı kodu 100 kez çalıştır, sonra 100 farklı kod çalıştır ve benzersiz Worker sayısını karşılaştır.
Adım 4 — Üretilen kodu arşivle
Ölçüm
| Ölçüt | Değer |
|---|---|
| Kod üretiminden sonuca toplam süre | — |
| Deploy beklemesi | yok |
| 100 aynı kod → benzersiz Worker sayısı | — |
| 100 farklı kod → benzersiz Worker sayısı | — |
| Binding’siz kodun eriştiği kaynak | — |
Fiyatlandırma
| Workers Free | Workers Paid | |
|---|---|---|
| Benzersiz Dynamic Worker | Kullanılamaz | Ayda 1.000 dahil |
| Aşım | — | Gün başına Dynamic Worker başına 0,002 USD |
Bunun üstüne normal Workers istek ve CPU ücreti eklenir.
Limitler
Kaynak sınırlarının (cpuMs, subRequests) minimum, maksimum ve varsayılan değerleri resmî
olarak yayımlanmamıştır. Sınır verilebildiği biliniyor ancak kesin aralıklar doğrulanamadı.
Temel Workers limitleri (128 MB bellek, 1 saniye başlangıç süresi) geçerlidir.
Lisanslama ve hukuki çerçeve
Dynamic Workers tescilli bir hizmettir; Cloudflare Hizmet Şartları kapsamındadır.
Güvenilmeyen kod çalıştırmanın sorumluluğu sende. İzolasyon Cloudflare’in isolate modeliyle sağlanır ama kodun ne yaptığından — hangi adreslere gittiğinden, hangi veriyi işlediğinden — sen sorumlusun. Binding vermemek en güçlü sınırlamadır.
Yapay zekâ üretimi kodun telif durumu. Bir LLM’in ürettiği kodu çalıştırıyorsan, o kodun lisans durumu belirsiz olabilir. Üretilen kodu saklıyorsan ve yeniden dağıtıyorsan bu ayrı bir değerlendirme gerektirir.
Sık yapılan hatalar
Faturalama birimini yanlış anlamak. Ücret çağrı başına değil, benzersiz Worker başına günlüktür. Kod hash’lemeden çalıştırmak faturayı katlar.
Güvenilmeyen koda geniş binding vermek. Verdiğin her binding o kodun erişebileceği bir yüzeydir. En az yetki ilkesini uygula.
CPU sınırı vermemek. Sonsuz döngü içeren üretilmiş kod hesabını tüketebilir.
Üretilen kodu saklamamak. Deploy geçmişi olmadığı için sorun çıktığında hangi kodun çalıştığını bulamazsın.
Beta ürünü kritik yolda kullanmak. API değişebilir, SLA yoktur.
Yanlış ürünü seçmek. Kod kalıcıysa Workers for Platforms, kabuk gerekiyorsa Sandboxes daha uygundur.
Sıkça sorulan sorular
- Dynamic Workers nedir, normal Workers'tan farkı ne?
- Normal bir Worker önce deploy edilir, sonra çalışır. Dynamic Worker istek anında oluşturulur — kodu bir string olarak verirsin ve çalışır. Deploy adımı, sürüm yönetimi ve bekleme süresi yoktur. Bunun karşılığında kalıcı bir kimliği ve deploy geçmişi de yoktur.
- Durumu ne? Üretimde kullanabilir miyim?
- 24 Mart 2026'dan beri açık beta ve yalnızca Workers Paid planında. Beta olması API'nin değişebileceği ve SLA taahhüdü olmadığı anlamına gelir. Kritik iş yükleri için erken; deneysel ve iç araçlar için uygun.
- Nasıl faturalanıyor?
- Ayda 1.000 benzersiz Dynamic Worker dahil, sonrası gün başına Dynamic Worker başına 0,002 USD. Dikkat edilmesi gereken: faturalama birimi benzersiz Worker sayısıdır, çağrı sayısı değil. Aynı kodu gün boyu bin kez çalıştırmak tek bir Dynamic Worker sayılır; bin farklı kod parçası çalıştırmak bin tane. Bunun üstüne normal Workers istek ve CPU ücreti de gelir.
- Workers for Platforms yerine bunu mu kullanmalıyım?
- Farklı problemler. Workers for Platforms: müşterilerinin kodu kalıcıdır, sürümlenir, namespace'te durur, sen dispatch Worker ile yönetirsin. Uzun ömürlü çok kiracılı platform için. Dynamic Workers: kod geçicidir, o an üretilir, deploy edilmez. LLM'in ürettiği tek kullanımlık mantık için. Bir SaaS eklenti ekosistemi kuruyorsan W4P; bir yapay zekâ ajanına kod çalıştırtıyorsan Dynamic Workers.
- Sandboxes ile arasındaki fark ne?
- Sandboxes tam bir Linux container'ı verir — kabuk, dosya sistemi,
pip install, herhangi bir dil. Cold start 1–3 saniye, Containers üzerinden faturalanır. Dynamic Workers bir V8 isolate'i verir — yalnızca JavaScript/Wasm, dosya sistemi yok, ama neredeyse sıfır cold start. LLM Python üretiyorsa Sandboxes; JavaScript üretiyorsa ve hız önemliyse Dynamic Workers. - Güvenilmeyen kodu çalıştırmak güvenli mi?
- İzolasyon Workers'ın isolate modeliyle aynıdır — bu güçlü bir sınırdır. Ama uygulama seviyesi güvenlik senin sorumluluğun: kodun hangi binding'lere erişebileceğini, hangi dış adreslere gidebileceğini ve ne kadar CPU harcayabileceğini sen sınırlarsın. Binding vermezsen kod hiçbir kaynağa erişemez.
- Kaç farklı kod parçası çalıştırabilirim?
- Yayımlanmış sert bir üst sınır bulunamadı. Pratik sınır faturadır: her benzersiz Worker günlük ücret doğurur. Çok sayıda farklı kod parçası üreten bir sistemde maliyeti kontrol etmek için kod parçalarını hash'leyip tekrar kullanmak mantıklıdır — aynı kod aynı Dynamic Worker'a düşer.
- Kalıcı state tutabilir miyim?
- Dynamic Worker'ın kendisi state tutmaz. Binding verirsen KV, D1, R2 veya Durable Objects üzerinden state'e erişebilir. Ama unutma: güvenilmeyen kod çalıştırıyorsan verdiğin her binding o kodun erişebileceği bir yüzeydir.
- Hata ayıklamayı nasıl yapıyorum?
- Kod deploy edilmediği için klasik sürüm geçmişi ve rollback yok. Workers Observability üzerinden log ve trace toplayabilirsin. Üretilen kodu bir yerde saklamak — en azından hash'iyle birlikte — sorun çıktığında hangi kodun çalıştığını bulabilmek için gereklidir.
- CPU sınırlarını kod parçası başına ayarlayabilir miyim?
- Kaynak sınırlarının (
cpuMs,subRequests) minimum, maksimum ve varsayılan değerleri resmî olarak yayımlanmamış. Sınırlama yapabildiğin biliniyor ama kesin aralıklar doğrulanamadı. Üretim planı yaparken Cloudflare ile teyit et. - Bu ürün Agents Week'te mi duyuruldu?
- Zamanlama o döneme denk geliyor — 2026 baharında Cloudflare konumlandırmasını yapay zekâ ajanlarına kaydırdı ve bu ürün de o çerçevenin parçası. Temel fikir şu: bir ajan kod üretiyorsa, o kodun çalışması için deploy döngüsü beklemek anlamsız.
İlgili servisler
- WorkersJavaScript/TypeScript/Python kodunu Cloudflare’in 330+ şehirdeki sunucularında, sunucu yönetmeden çalıştırır.
- SandboxesGüvenilmeyen kodu — özellikle LLM’in ürettiği kodu — izole bir Linux ortamında çalıştırır.
- Workers for PlatformsKendi müşterilerinin yazdığı kodu izole biçimde çalıştırmanı sağlar; SaaS platformları için.
- Workers AIAçık kaynak modelleri Cloudflare’in GPU’larında, API çağrısıyla çalıştırır.
- AgentsDurumu koruyan, zamanlanmış görev çalıştırabilen ve WebSocket ile konuşan yapay zekâ ajanları kurar.
Bu sayfadaki fiyat ve özellik bilgileri 31 Ağustos 2026 tarihinde Cloudflare’in resmî kaynaklarından doğrulanmıştır. Cloudflare fiyatlandırmasını önceden haber vermeden değiştirebilir; bağlayıcı bilgi içinresmî sayfaya bakın.