İçeriğe atla
Cloudflare Wiki

    gez · aç · Esc kapat

    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 verirCold startKod neredenNe zaman
    Dynamic WorkersV8 isolate~0 msÇalışma anında üretilirLLM JavaScript üretiyorsa
    SandboxesTam Linux container1–3 snÇalışma anında üretilirLLM Python üretiyorsa, kabuk gerekiyorsa
    Workers for PlatformsV8 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

    Terminal — bindings listesinde Dynamic Workers binding'inin göründüğü satır

    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]}}'
    curl yanıtı — üretilen kod, çalışma sonucu ve kod hash'i bir arada
    time komutu çıktısı — kod üretiminden sonuca kadar geçen toplam süre; deploy beklemesi olmadığı görünsün

    Adım 3 — Aynı kodu tekrar çalıştır

    Aynı kod tekrar çalıştırıldığında aynı Dynamic Worker'a düştüğünü gösteren çıktı

    Adım 4 — Panelde kullanımı gör

    Panel — benzersiz Dynamic Worker sayısı ve aylık 1.000'lik kotaya oranı

    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.

    Kodun env üzerinden erişmeye çalıştığı ve hiçbir binding bulamadığı çıktı

    Adım 2 — CPU sınırını test et

    Sonsuz döngü içeren bir kod parçası çalıştır.

    cpuMs sınırı aşıldığında dönen hata ve Worker'ın kesildiğini gösteren log

    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.

    Panel metrikleri — iki senaryonun benzersiz Dynamic Worker sayısındaki farkı

    Adım 4 — Üretilen kodu arşivle

    KV listesi — hash anahtarlarıyla saklanan kod parçaları ve metadata'ları

    Ölçüm

    ÖlçütDeğer
    Kod üretiminden sonuca toplam süre
    Deploy beklemesiyok
    100 aynı kod → benzersiz Worker sayısı
    100 farklı kod → benzersiz Worker sayısı
    Binding’siz kodun eriştiği kaynak

    Fiyatlandırma

    Workers FreeWorkers Paid
    Benzersiz Dynamic WorkerKullanılamazAyda 1.000 dahil
    AşımGü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.

    Hata bildir

    Yanlış bir rakam, eskimiş bir bilgi veya bozuk bir bağlantı mı buldun? Bildir, kaynağıyla birlikte kontrol edelim.