Dokumentace Domluvit pilot

Workers

Cloudflare Workers spouští kód zákazníků v V8 isolates v síti Cloudflare a využívá bindings k úložištím, databázím, frontám a inferenčním službám. Tato stránka popisuje model spouštění, model bindings, limity platformy, které omezují návrh, a zveřejněné ceny.

Řízení dokumentu

Dana, technická redaktorka ve společnosti Integrity
Dana
Technická redaktorka, Integrity Czech Republic s.r.o.

Řízení dokumentu. Dodavatel: Cloudflare, Inc. Vlastník dokumentu: Dana, technická redaktorka, Integrity Czech Republic s.r.o. Poslední revize: 2026-08-31. Snímek obsahu odkazované dokumentace Cloudflare: 2026-08-28. Údaje v tomto dokumentu byly ověřeny proti zdrojům uvedeným v sekci References k datům, která jsou tam uvedena. Cloudflare mění limity i složení balíčků bez upozornění, proto si každou hodnotu, na které stavíte návrh, ověřte přímo u zdroje.

Přehled

Workers je bezserverová výpočetní platforma Cloudflare. Kód se nasazuje do sítě, nikoli do konkrétního regionu, a volání zpracovává datové centrum, které požadavek přijalo. Nemusíte řešit velikost instancí ani opravovat runtime, platforma ale stanovuje jasné limity pro CPU, paměť, počet subrequestů a velikost skriptu, které určují, co na ní lze postavit. Popisuje je sekce Limity a omezení; přečtěte si ji před návrhem řešení, ne až po něm.

Běžné jsou dva způsoby použití. První umísťuje Worker před stávající origin server a řeší směrování, úpravu hlaviček, autentizaci, personalizaci nebo logiku cachování a aplikace přitom zůstává, kde je. Druhý staví aplikaci zcela na platformě a využívá její úložné a databázové služby bez klasického origin serveru.

Škálování řeší platforma v tom smyslu, že pro jednotlivá nasazení nevyhrazujete kapacitu. To ale neznamená neomezené škálování: platí limity na CPU čas, paměť a počet subrequestů na jedno volání i limity na úrovni jednotlivých služeb a existují také kontroly souběžnosti na úrovni účtu. Navrhujte řešení podle zdokumentovaných limitů, ne podle předpokladu neomezené škálovatelnosti.

Architektura

Worker běží ve V8 izolátu, nikoli v kontejneru nebo virtuálním stroji. Izolát je izolovaný kontext pro spouštění JavaScriptu, přičemž jeden proces hostí mnoho izolátů najednou a spuštění nového izolátu je podstatně levnější než spuštění kontejnerového obrazu. Na tom stojí rychlý start platformy i to, že se vyplatí nasazovat stejný kód do všech lokalit.

Spuštění není ve všech případech zdarma. Doba cold startu závisí na velikosti skriptu, na množství práce prováděné na úrovni modulu a na tom, zda je nutné vytvořit instanci modulu WebAssembly. Velké balíčky a náročná inicializace cold start měřitelně prodlužují.

Prostředí pro spouštění implementuje webová platformní API: fetch, Request a Response, URL, Web Crypto, streamy, WebSocket a podmnožinu API Node.js, kterou zapíná příznak kompatibility nodejs_compat. Chování runtime určuje datum kompatibility a příznaky kompatibility v konfiguraci Workeru. Právě takto platforma zavádí změny chování, aniž by rozbila už nasazený kód.

Bindings propojují Worker se zdroji platformy. Binding se deklaruje v konfiguraci a za běhu se vloží do objektu prostředí, takže KV namespace, R2 bucket, D1 databáze, queue, Durable Object namespace, AI model nebo jiný Worker se adresují jako schopnost, nikoli prostřednictvím connection stringu nebo vloženého přihlašovacího údaje.

Nasazení přes Wrangler CLI publikuje novou verzi. Postupná nasazení směrují na novou verzi nakonfigurované procento provozu, což znamená, že během postupného nasazení běží současně dvě verze. Nasazení proto v tomto režimu není atomické a kód musí zvládnout provoz obou verzí nad stejnými daty.

V rámci zpracování požadavku Cloudflare probíhají bezpečnostní fáze ještě před spuštěním Workeru, takže požadavek zablokovaný WAF nebo pravidlem DDoS se ke kódu Workeru vůbec nedostane.

Možnosti

MožnostChováníStav a úroveňZdroj
Runtime pro JavaScript a TypeScriptPrimárně podporovaný runtime, který běží ve V8 isolates a používá standardní webová API.Obecně dostupné.Runtime API
WebAssemblyModuly zkompilované z Rustu, C, C++ a dalších jazyků, volané z JavaScriptového vstupního bodu.Obecně dostupné.WebAssembly
Python WorkersVstupní body Pythonu spouštěné na platformě.Veřejná beta. Vyžaduje příznak kompatibility python_workers. Nehodí se pro úlohy, které vyžadují záruku stability.Python Workers
Workers KVGlobální eventuálně konzistentní úložiště klíč-hodnota optimalizované pro vysoký objem čtení.Obecně dostupné.Workers KV
R2Objektové úložiště s API kompatibilním se S3 a bez poplatků za odchozí přenos dat do internetu.Obecně dostupné.R2
D1Bezserverová SQL databáze postavená na SQLite.Obecně dostupné.D1
Durable ObjectsStavové objekty v jediné instanci, které poskytují silnou konzistenci, transakční úložiště a koordinaci WebSocketů.Obecně dostupné.Durable Objects
Queues, Cron Triggers, WorkflowsAsynchronní zpracování zpráv, plánované spouštění a odolné vícekrokové provádění.Ověřte stav jednotlivé funkce u zdroje, než se na ni spolehnete.Queues
Workers AI a VectorizeInference na hostovaných modelech a ukládání a vyhledávání ve vektorových indexech.Stav modelů a funkcí se liší, některé jsou ve fázi beta. Ověřte to u konkrétního modelu.Workers AI
Statické assety a WranglerHosting statických assetů pro fullstack aplikace: lokální vývoj, verzování, postupné nasazování a observability prostřednictvím Wrangler CLI.Obecně dostupné.Wrangler

Model konfigurace

Worker tvoří kód a konfigurační soubor, wrangler.jsonc nebo wrangler.toml. Konfigurace deklaruje:

Volba úložiště je hlavním architektonickým rozhodnutím a řídí se požadovanou konzistencí a vzorem přístupu: KV pro časté čtení dat, u kterých stačí eventuální konzistence, D1 pro relační dotazy, R2 pro objekty, Durable Objects tam, kde je potřeba silná konzistence nebo koordinace na úrovni jednotlivé entity, a Queues tam, kde má být zpracování odděleno od požadavku.

Konfiguraci uchovávejte ve verzovacím systému spolu s kódem, protože bindings a nastavení kompatibility ovlivňují chování za běhu stejnou měrou jako samotný zdrojový kód.

Limity a omezení

Níže uvedené hodnoty pocházejí z dokumentace limitů platformy Cloudflare, ověřeno 2026-08-31 (https://developers.cloudflare.com/workers/platform/limits/). Mění se bez upozornění, proto je před návrhem znovu ověřte.

LimitFreePlacený
Požadavky100 000 za den, 1 000 za minutuÚčtováno za požadavek, bez denního limitu
Čas CPU na volání10 msvýchozích 30 s, lze nastavit až na 5 minut
Paměť na izolát128 MB128 MB
Velikost Workeru po kompresi3 MB10 MB
Subrequesty na jedno volání5010 000
Subrequesty na interní služby (KV, R2, D1) na jedno volání1 000Odpovídá nakonfigurovanému limitu, výchozí 10 000
Souběžná odchozí spojení66
Proměnné prostředí na jeden Worker64128
Čas CPU pro Cron Trigger10 ms30 s pro intervaly kratší než 1 hodinu; 15 minut pro intervaly od 1 hodiny

Subrequest je jakýkoli požadavek, který Worker odešle přes Fetch API nebo na službu Cloudflare přes binding, takže volání fetch i volání přes binding čerpají ze stejného rozpočtu na jedno volání.

Limity úložišť (staženo 2026-08-28):

Další omezení:

Dostupnost podle tarifu

ÚroveňZahrnuto
Free100 000 požadavků za den, 10 ms CPU na volání, komprimovaná velikost Workeru 3 MB, 50 subrequestů na volání, se samostatnými bezplatnými limity pro KV, D1 a R2.
Workers PaidPodle Cloudflare od 5 USD měsíčně včetně 10 milionů požadavků a 30 milionů CPU milisekund měsíčně; využití nad tyto hodnoty se účtuje za požadavek a za CPU milisekundu. Výchozí čas CPU zvyšuje na 30 sekund, velikost Workeru na 10 MB a počet HTTP subrequestů na 10 000.
Služby platformyKV, R2, D1, Durable Objects, Queues, Vectorize a Workers AI se měří odděleně od požadavků Workers, každá služba má vlastní bezplatný limit a jednotkovou cenu. R2 neúčtuje žádný poplatek za odchozí přenos dat (egress) do internetu.
EnterpriseSmluvní podmínky, závazky k využití a podmínky podpory.

Platí k datu 2026-08-28 podle veřejné cenové dokumentace Cloudflare (https://developers.cloudflare.com/workers/platform/pricing/). Ceny, zahrnuté objemy a limity se mohou měnit bez upozornění. Náklady modelujte podle ceníku každé služby v návrhu, ne jen podle ceny za požadavky Workers.

Nasazení

Předpoklady.

Postupné ověřování. Úlohu nejdřív nasaďte do stagingu s vlastními bindings a daty a otestujte ji na reprezentativním provozu. Měřte čas CPU na jedno volání, využití paměti a počet subrequestů vůči limitům dané úrovně a chování cold startu měřte na produkční velikosti balíčku, nikoli na zmenšené verzi. Než pustíte jakýkoli produkční provoz, ověřte, že výstup observability dochází tam, kam má.

Konfigurace.

  1. Deklarujte bindings a explicitně nastavte datum kompatibility. Nespoléhejte na výchozí hodnotu.
  2. Přesuňte všechny přihlašovací údaje do Worker secrets a ověřte, že žádné nezůstaly v repozitáři ani v konfiguračním souboru.
  3. Nastavte oddělená prostředí pro staging a produkci, každé s vlastními úložišti, aby chyba při nasazení nemohla zapsat do produkčních dat.
  4. Nastavte CI tak, aby nasazovala pipeline s omezeným API tokenem, ne vývojář ze své pracovní stanice.
  5. Před veřejně dostupné trasy Workeru zařaďte omezování počtu požadavků a tam, kde to odpověď dovoluje, přidejte cachování, aby byl objem požadavků, a tedy i náklady, omezený.
  6. Namodelujte náklady podle očekávaného provozu pomocí cenových stránek jednotlivých služeb, včetně tříd operací úložiště, a nastavte upozornění na fakturaci.

Přepnutí provozu. Provoz do produkce převádějte postupně, pomocí gradual deployments nebo trasy, která pokrývá jen část cest. Protože při postupném nasazení běží obě verze současně, ověřte, že nová verze je kompatibilní s daty zapsanými předchozí verzí a s daty, která bude předchozí verze zapisovat i během tohoto přechodu.

Ověření.

Vrácení změn. Vraťte provoz na předchozí verzi pomocí rozhraní pro nasazení, nebo odstraňte trasu, aby požadavky směřovaly přímo na origin. Předchozí verzi ponechte nasazenou, dokud nová verze neprojde celým cyklem provozu. Pokud se změnilo schéma nebo formát dat, před vrácením ověřte, že předchozí verze dokáže přečíst data zapsaná novou verzí.

Provozní hlediska

Měřte čas CPU, chybovost a počet subrequestů podle jednotlivých tras, nejen celkový objem požadavků. Chyby související s limity se projeví až při zátěži a v testovacím prostředí s nízkým provozem zůstávají neviditelné.

Datum kompatibility průběžně kontrolujte. Pokud jej ponecháte natrvalo beze změny, Worker poběží podle stále staršího chování runtime; jeho posunutí bez otestování změní chování. Každý posun berte jako změnu, která vyžaduje vlastní ověření.

Sledujte počty operací s úložištěm spolu s počty požadavků. U návrhu s několika operacemi KV nebo D1 na jeden požadavek určují náklady hlavně tyto operace a změna cachování může fakturu výrazně posunout oběma směry.

Rotujte tajné klíče Workeru podle plánu a uchovávejte je pouze v platformním úložišti tajných klíčů. Protože bindings nahrazují connection stringy, uniklý tajný klíč bývá přihlašovacím údajem aplikace, nikoli platformy, ale povinnost rotace zůstává stejná.

Navrhněte klíče Durable Object tak, aby se zátěž rozložila mezi jednotlivé objekty. Pokud jeden objekt zpracovává nepřiměřeně velký podíl provozu, stává se stropem propustnosti, který žádné škálování platformy nevyřeší.

Režimy selhání, se kterými je třeba počítat: aktualizace závislosti, která posune balíček nad limit velikosti, cesta v kódu, jež u velkých vstupů občas překročí limit CPU, kolize při zápisu do KV na jediném klíči, upstream služba natolik pomalá, že drží subrequesty otevřené, a postupné nasazení ponechané částečně rozpracované.

Známá úskalí

Interoperabilita

Workers se spouštějí až po bezpečnostních fázích zpracování požadavků v Cloudflare, takže rozhodnutí WAF, DDoS a Bot Management se uplatní ještě předtím, než se spustí kód Workeru. Blokovaný požadavek se k Workeru vůbec nedostane.

Workers komunikují s CDN prostřednictvím Cache API a Cache Rules. Pokud na stejný požadavek působí zároveň Cache Rule i logika mezipaměti Workeru, přednost určuje zdokumentované pořadí zpracování provozu.

R2 může fungovat jako origin pro CDN a je základem Cache Reserve, takže objektové úložiště, cachování a výpočetní služby fungují společně bez tradičního origin serveru.

Přes service bindings může jeden Worker volat druhý bez síťového round tripu. Aplikaci tak lze rozdělit na samostatně nasazované části a latence volání mezi nimi zůstane nízká.

Token Turnstile lze ověřit přímo ve Workeru, tedy na edge, a ne až v backendu aplikace.

Před trasu Workeru lze předřadit Access: požadavky se ověří a autorizují ještě před voláním Workeru, který pak autentizaci nemusí řešit sám.

Časté dotazy

Je pro přechod na Workers nutná migrace celé aplikace? Ne. Obvykle se Worker umístí na trasu (route) před stávající origin server a řeší přesměrování, logiku cache, autentizaci nebo personalizaci, zatímco aplikace zůstává tam, kde je. Migrace samotné aplikace je samostatné rozhodnutí.

Co vlastně limit CPU měří? Čas strávený prováděním kódu, nikoli celková doba trvání požadavku. Čekání na subrequest nespotřebovává čas CPU, takže požadavek může trvat déle než limit CPU, aniž by ho překročil.

Kam ukládat stav relace nebo koordinace? Do Durable Objects, pokud potřebujete silnou konzistenci nebo koordinaci na úrovni jednotlivých entit. KV je eventuálně konzistentní a má omezenou rychlost požadavků na jeden klíč, takže se na rychle se měnící stav jednoho klíče nehodí.

Které části aplikace Workers lze přenést na jinou platformu? Kód, který používá standardní webová API, data v R2 přes API kompatibilní se S3 a schémata a dotazy D1 v dialektu SQLite jsou z velké části přenositelné. Durable Objects a další služby specifické pro platformu vyžadují změnu architektury.

Zdroje

Snímek obsahu: 2026-08-28.

Changelog

DatumZměnaAutor
2026-08-31Přepsáno jako technická reference: odstraněn marketingový registr, doplněny tabulky limitů a dostupnosti podle tarifů včetně zdrojů, údaje ověřeny podle dokumentace Cloudflare.Dokumentační tým Integrity
2026-08-28První vydání.Dokumentační tým Integrity

Obsah

464 stránek zrcadlených z dokumentace Cloudflare pro workers.

Hlavní stránky

Osvědčené postupy

Mezipaměť Workers

CI/CD

Konfigurace

Databáze

Ukázky a architektury

Příklady

Návody pro frameworky

Začínáme

Jazyky

Lokální vývoj

Observabilita

Platforma

Referenční informace

Runtime API

Static Assets

Testování

Návody

Verze a nasazení

Plugin Vite

Wrangler

Požádejte o pilot zdarma

Domluvit pilot