INTEGRITY Dokumentace

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. Tyto limity jsou popsané v sekci Limits and constraints a měli byste si je přečíst 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 ukládání do mezipaměti, přičemž aplikace zůstává na svém místě. Druhý staví aplikaci zcela na platformě a využívá její úložné a databázové služby bez klasického origin serveru.

O škálování se stará platforma v tom smyslu, že se pro jednotlivá nasazení neprovádí žádné vyhrazování kapacity. To ale neznamená neomezené škálování: platí limity na CPU čas, paměť a počet subrequestů na jedno vyvolá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. To je základ jak rychlosti startu platformy, tak ekonomiky nasazování stejného kódu do všech lokalit.

Spuštění není ve všech případech zdarma. Doba studeného 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 vedou k měřitelným studeným startům.

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 povolenou prostřednictvím nodejs_compat příznak kompatibility. Chování za běhu je zafixováno datem kompatibility a příznaky kompatibility deklarovanými v konfiguraci Workeru, a právě tímto způsobem platforma zavádí změny chování, aniž by narušila již 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 python_workers příznak kompatibility. Není vhodný 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 s 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é prostředky a WranglerHosting statických prostředků 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 je definován svým kódem a konfiguračním souborem, 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 vazby 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í, a než na nich návrh začne záviset, měly by se znovu ověřit.

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
Podpožadavky na jedno vyvolání5010,000
Podpožadavky na interní služby na jedno vyvolání, jako KV, R2 a D11,000Odpovídá nakonfigurovanému limitu, výchozí 10,000
Současná odchozí spojení66
Proměnné prostředí pro jednotlivé Workery64128
Čas CPU Cron Trigger10 ms30 s pro intervaly kratší než 1 hodina; 15 minut pro intervaly 1 hodina a delší

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 vyvolání.

Omezení služby úložiště, 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 PaidCloudflare udává minimálně 5 amerických dolarů měsíčně, včetně 10 milionů požadavků a 30 milionů CPU milisekund měsíčně, přičemž 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 1,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 stránek s cenami jednotlivých služeb pro každou službu v návrhu, nikoli jen podle ceny za požadavky Workers.

Nasazení

Předpoklady.

Postupné ověřování. Implementujte zátěž proti staging prostředí s vlastními bindings a vlastními 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. Před nasměrováním jakéhokoli produkčního provozu ověřte, že výstup observability dorazí na zamýšlené místo určení.

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. Nakonfigurujte oddělená staging a produkční prostředí s odlišnými úložnými prostředky, aby chyba při nasazení nemohla zapsat do produkčních dat.
  4. Nastavte CI tak, aby nasazení prováděl pipeline pomocí omezeného API tokenu, a ne z pracovní stanice vývojáře.
  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 směrujte postupně pomocí postupných nasazení (gradual deployments) nebo trasy pokrývající podmnožinu 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, místo abyste ji hned odstranili. Pokud se změnilo schéma nebo formát dat, před vrácením zpět 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ů. Návrh, který provádí několik operací KV nebo D1 na jeden požadavek, má nákladový profil určovaný právě těmito operacemi, a změna cachování tak může výslednou fakturu výrazně změnit 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á obvykle 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í 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.

Service bindings umožňují jednomu Workeru vyvolat druhý bez zpáteční síťové cesty, což umožňuje rozdělit aplikaci na samostatně nasazované jednotky a zároveň udržet nízkou latenci volání.

Ověření Turnstile lze provádět z Workeru, což umožňuje ověřování výzvy na edge namísto v backendu aplikace.

Access je možné umístit před trasu Workeru tak, aby byly požadavky před vyvoláním ověřeny a autorizovány, aniž by Worker musel autentizaci implementovat sám.

Časté dotazy

Je pro přechod na Workers nutná migrace celé aplikace? Ne. Běžný způsob zavedení umístí Worker na route před stávající origin server, aby řešil 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.

Která úložná služba by měla uchovávat stav relace nebo koordinace? Durable Objects, pokud je vyžadována silná konzistence nebo koordinace na úrovni jednotlivých entit. KV je eventuálně konzistentní a má omezenou rychlost požadavků na jeden klíč, což jej činí nevhodným pro rychle se měnící stav jednoho klíče.

Které části aplikace Workers lze přenést na jinou platformu? Kód napsaný proti standardním webovým API, data v R2 přes S3 kompatibilní API 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.

Pages

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