← Cloudflare Workers / workers / wrangler
Konfigurace
Wrangler může volitelně použít konfigurační soubor k přizpůsobení nastavení vývoje a nasazení Workeru.
Je osvědčeným postupem považovat konfigurační soubor Wrangler za zdroj pravdy pro konfiguraci Worker.
Ukázková konfigurace Wrangler
{
"$schema": "./node_modules/wrangler/config-schema.json",
// Top-level configuration
"name": "my-worker",
"main": "src/index.js",
// Set this to today's date
"compatibility_date": "2026-08-28",
"workers_dev": false,
"route": {
"pattern": "example.org/*",
"zone_name": "example.org",
},
"kv_namespaces": [
{
"binding": "<MY_NAMESPACE>",
"id": "<KV_ID>",
},
],
"env": {
"staging": {
"name": "my-worker-staging",
"route": {
"pattern": "staging.example.org/*",
"zone_name": "example.org",
},
"kv_namespaces": [
{
"binding": "<MY_NAMESPACE>",
"id": "<STAGING_KV_ID>",
},
],
},
},
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "my-worker"
main = "src/index.js"
# Set this to today's date
compatibility_date = "2026-08-28"
workers_dev = false
[route]
pattern = "example.org/*"
zone_name = "example.org"
[[kv_namespaces]]
binding = "<MY_NAMESPACE>"
id = "<KV_ID>"
[env.staging]
name = "my-worker-staging"
[env.staging.route]
pattern = "staging.example.org/*"
zone_name = "example.org"
[[env.staging.kv_namespaces]]
binding = "<MY_NAMESPACE>"
id = "<STAGING_KV_ID>"Prostředí
Různé konfigurace pro Worker můžete definovat pomocí Wrangleru prostředí. Existuje výchozí (nejvyšší úrovně) prostředí a dále můžete vytvářet pojmenovaná prostředí s konfigurací specifickou pro dané prostředí.
Jsou definovány v [env.<name>] klíče, jako je [env.staging] který pak můžete zobrazit v náhledu nebo nasadit pomocí -e / --env příznak v wrangler příkazy jako npx wrangler deploy --env staging.
Většinu klíčů lze dědit, což znamená, že konfiguraci nejvyšší úrovně lze použít i v prostředích. Bindings, jako je vars nebo kv_namespaces, nejsou dědičné a je nutné je definovat explicitně.
Kromě toho existuje několik klíčů, které mohou pouze se zobrazí na nejvyšší úrovni.
Automatické zajišťování
Wrangler dokáže při nasazení Workeru automaticky vytvořit potřebné prostředky, aniž byste je museli připravovat předem.
V současnosti to funguje pro následující prostředky: KV, R2, D1, Flagship, AI Search, Agent Memory, Dispatch Namespaces a Queues.
Chcete-li tuto funkci použít, přidejte do konfiguračního souboru bindings bez přidáním ID prostředků, nebo v případě R2 názvu bucketu. Prostředky budou vytvořeny s předponou tvořenou názvem vašeho workeru.
{
"kv_namespaces": [
{
"binding": "<MY_KV_NAMESPACE>",
},
],
}[[kv_namespaces]]
binding = "<MY_KV_NAMESPACE>"Když spustíte wrangler dev, automaticky se vytvoří lokální prostředky, které zůstanou zachovány mezi jednotlivými spuštěními. Když spustíte wrangler deploy, prostředky se pro vás vytvoří a jejich ID se zapíší zpět do vašeho konfiguračního souboru.
Pokud nasadíte worker s prostředky bez ID prostředků z dashboardu (například přes GitHub), prostředky se vytvoří, ale jejich ID budou dostupná pouze přes dashboard. V současnosti se tato ID prostředků nezapisují zpět do repozitáře.
Klíče pouze nejvyšší úrovně
Klíče nejvyšší úrovně platí pro Worker jako celek (a tedy pro všechna prostředí). Nelze je definovat v rámci pojmenovaných prostředí.
keep_varsbooleanvolitelné- Zda má Wrangler při nasazení zachovat proměnné nakonfigurované v dashboardu. Více informací najdete v zdroj pravdy.
send_metricsbooleanvolitelné- Zda má Wrangler pro tento projekt odesílat data o používání do Cloudflare. Výchozí hodnota je
true. Více se o tom dozvíte v naší zásady zpracování dat ↗.
- Zda má Wrangler pro tento projekt odesílat data o používání do Cloudflare. Výchozí hodnota je
dependencies_instrumentationobjectvolitelné- Konfiguruje instrumentaci závislostí npm balíčků při nasazení nebo nahrávání verze Workeru. Ve výchozím nastavení je povoleno.
enabledboolean: zda má Wrangler shromažďovat a odesílat metadata o závislostech npm balíčků (názvy a verze balíčků). Výchozí hodnota jetrue.
siteobjectvolitelné, zastaralé- Viz Workers Sites sekci níže, kde najdete další informace. Cloudflare Pages a Workers Assets mají před tímto postupem přednost.
- Toto není podporováno Cloudflare Vite plugin.
Dědičné klíče
Dědičné klíče lze nastavit na nejvyšší úrovni a mohou být zděděny (nebo přepsány) konfigurací specifickou pro dané prostředí.
namestringpovinné- Název vašeho Workeru. Alfanumerické znaky (
a,b,c, atd.) a pomlčky (-) pouze. Nepoužívejte podtržítka (_). Názvy Workerů mohou mít až 255 znaků. Pokud plánujete použítworkers.devsubdoména, název musí mít nejvýše 63 znaků a nesmí začínat ani končit spojovníkem.
- Název vašeho Workeru. Alfanumerické znaky (
mainstringpovinné- Cesta k entrypointu vašeho Workeru, který se má spustit. Například:
./src/index.ts.
- Cesta k entrypointu vašeho Workeru, který se má spustit. Například:
compatibility_datestringpovinné- Datum ve tvaru
yyyy-mm-dd, která se použije k určení, jaká verze Workers runtime se použije. Viz Data kompatibility.
- Datum ve tvaru
account_idstringvolitelné- Toto je ID účtu přiřazeného k vaší zóně. Můžete mít více než jeden účet, proto se ujistěte, že používáte ID účtu přiřazeného k zóně/route, kterou uvedete, pokud nějakou uvedete. Lze jej také zadat pomocí
CLOUDFLARE_ACCOUNT_IDproměnná prostředí.
- Toto je ID účtu přiřazeného k vaší zóně. Můžete mít více než jeden účet, proto se ujistěte, že používáte ID účtu přiřazeného k zóně/route, kterou uvedete, pokud nějakou uvedete. Lze jej také zadat pomocí
compatibility_flagsstring[]volitelné- Seznam flagů, které zapínají funkce z připravovaných verzí Workers runtime, obvykle používaných společně s
compatibility_date. Viz data kompatibility.
- Seznam flagů, které zapínají funkce z připravovaných verzí Workers runtime, obvykle používaných společně s
workers_devbooleanvolitelné- Umožňuje použití
*.workers.devsubdoménu k nasazení vašeho Workeru. Pokud máte Worker, který slouží pouze proscheduledudálosti můžete tuto hodnotu nastavit nafalse. Výchozí hodnota jetrue. Viz typy tras.
- Umožňuje použití
preview_urlsbooleanvolitelné- Umožňuje použít Preview URLs k testování Workeru. Výchozí hodnota odpovídá hodnotě
workers_dev. Viz Preview URLs.
- Umožňuje použít Preview URLs k testování Workeru. Výchozí hodnota odpovídá hodnotě
routeRoutevolitelné- Route, na kterou se má váš Worker nasadit. Musí být zadáno pouze jedno z
routesneborouteje vyžadován. Viz typy tras.
- Route, na kterou se má váš Worker nasadit. Musí být zadáno pouze jedno z
routesRoute[]volitelné- Pole tras, na které by měl být váš Worker nasazen. Pouze jedno z
routesneborouteje vyžadován. Viz typy tras.
- Pole tras, na které by měl být váš Worker nasazen. Pouze jedno z
tsconfigstringvolitelné- Cesta k vlastnímu
tsconfig. - Nepoužije se, pokud používáte Cloudflare Vite plugin.
- Cesta k vlastnímu
triggersobjectvolitelné- Definice cronu spouštějící u Workeru
scheduledfunkci. Viz triggery.
- Definice cronu spouštějící u Workeru
rulesRulevolitelné- Seřazený seznam pravidel, které určují, jaké moduly importovat a jako jaký typ. Pravidla je potřeba zadat, pokud chcete používat
Text,DataaCompiledWasmmoduly, nebo pokud chcete mít.jssoubor bude považován zaESModulemístoCommonJS. - Nepoužije se, pokud používáte Cloudflare Vite plugin.
- Seřazený seznam pravidel, které určují, jaké moduly importovat a jako jaký typ. Pravidla je potřeba zadat, pokud chcete používat
buildBuildvolitelné- Konfiguruje vlastní krok sestavení, který Wrangler spustí při sestavování vašeho Workeru. Viz Vlastní sestavení.
- Nepoužije se, pokud používáte Cloudflare Vite plugin.
no_bundlebooleanvolitelné- Přeskočí interní kroky sestavení a nasadí váš Worker skript přímo. Worker musí být čistě v JavaScriptu bez závislostí.
- Nepoužije se, pokud používáte Cloudflare Vite plugin.
find_additional_modulesbooleanvolitelné- Pokud je hodnota true, Wrangler projde strom souborů pod
base_dir. Všechny soubory, které odpovídajírulesbude součástí nasazeného Workeru. Výchozí hodnota je true, pokudno_bundleje true, jinak false. Lze použít pouze s Workers ve formátu Module (nikoli ve formátu Service Worker). - Nepoužije se, pokud používáte Cloudflare Vite plugin.
- Pokud je hodnota true, Wrangler projde strom souborů pod
base_dirstringvolitelné- Adresář, ve kterém se mají vyhodnocovat "rules" modulů při zahrnování dalších souborů (pomocí
find_additional_modules) do nasazení Workeru. Výchozí hodnotou je adresář obsahujícímainvstupní bod Workeru, pokud není zadán jinak. - Nepoužije se, pokud používáte Cloudflare Vite plugin.
- Adresář, ve kterém se mají vyhodnocovat "rules" modulů při zahrnování dalších souborů (pomocí
preserve_file_namesbooleanvolitelné- Určuje, zda Wrangler zachová názvy souborů dalších modulů sloučených s Workerem.
Výchozí chování je připojit před názvy souborů hash obsahu.
Například
34de60b44167af5c5a709e62a4e20c4f18c9e3b6-favicon.ico. - Nepoužije se, pokud používáte Cloudflare Vite plugin.
- Určuje, zda Wrangler zachová názvy souborů dalších modulů sloučených s Workerem.
Výchozí chování je připojit před názvy souborů hash obsahu.
Například
minifybooleanvolitelné- Před nahráním minifikujte skript Workeru.
- Pokud používáte Cloudflare Vite plugin,
minifyje nahrazeno Vitebuild.minify↗.
keep_namesbooleanvolitelné- Wrangler používá esbuild ke zpracování kódu Workeru pro vývoj a nasazení. Tato možnost umožňuje
určit, zda má esbuild použít svou keepNames ↗ logiku do kódu, nebo ne. Výchozí hodnota je
true.
- Wrangler používá esbuild ke zpracování kódu Workeru pro vývoj a nasazení. Tato možnost umožňuje
určit, zda má esbuild použít svou keepNames ↗ logiku do kódu, nebo ne. Výchozí hodnota je
logpushbooleanvolitelné- Povoluje pro Worker Logpush trasovacích událostí Workers. Všechny skripty s touto vlastností se automaticky zahrnou do úlohy Workers Logpush nakonfigurované pro váš účet. Výchozí hodnota je
false. Viz Workers Logpush.
- Povoluje pro Worker Logpush trasovacích událostí Workers. Všechny skripty s touto vlastností se automaticky zahrnou do úlohy Workers Logpush nakonfigurované pro váš účet. Výchozí hodnota je
limitsLimitsvolitelné- Konfiguruje limity uplatňované při běhu (runtime). Viz Limity.
observabilityobjectvolitelné- Konfiguruje automatická nastavení observability pro telemetrická data odesílaná z vašeho Workeru. Viz Observabilita.
assetsAssetsvolitelné- Konfiguruje statická aktiva, která budou obsluhována. Viz Assets pro další podrobnosti.
exportsobjectvolitelné- Deklaruje třídy Durable Object, které tento Worker exportuje, a jejich stav životního cyklu (
created,deleted,renamed,transferred,expecting-transfer). Viz Exporty tříd Durable Object. Vzájemně se vylučuje smigrations.
- Deklaruje třídy Durable Object, které tento Worker exportuje, a jejich stav životního cyklu (
migrationsobjectvolitelné- Starší imperativní konfigurace, která mapuje Durable Object z názvu třídy na stav za běhu. Pro nové Workery upřednostněte
exports. Viz Migrace tříd Durable Object (zastaralé).
- Starší imperativní konfigurace, která mapuje Durable Object z názvu třídy na stav za běhu. Pro nové Workery upřednostněte
placementobjectvolitelné- Konfiguruje, kde váš Worker běží, aby se minimalizovala latence ke koncovým (back-end) službám. Viz Umístění.
modestring: nastaveno na"smart"pro automatické umístění vašeho Workeru blízko backendových služeb na základě zjištěné latence.regionstring: zadejte cloudový region (například"aws:us-east-1","gcp:europe-west1", nebo"azure:westeurope") a umístěte svůj Worker blízko infrastruktury v tomto regionu.hoststring: zadejte hostname a port pro single-homed službu vrstvy 4 (například"my_database_host.com:5432") a umístěte svůj Worker blízko této služby.hostnamestring: zadejte hostname pro single-homed službu vrstvy 7 (například"my_api_server.com") a umístěte svůj Worker blízko této služby.
Neděditelné klíče
Neděditelné klíče lze nastavit na nejvyšší úrovni, nelze je však zdědit v prostředích a musí být zadány zvlášť pro každé prostředí.
defineRecord<string, string>volitelné- Mapa hodnot, které se při nasazení Workeru nahradí.
- Pokud používáte Cloudflare Vite plugin,
defineje nahrazeno Vitedefine↗.
varsobjectvolitelné- Mapa proměnných prostředí, které se nastaví při nasazení Workeru. Viz Proměnné prostředí.
durable_objectsobjectvolitelné- Seznam Durable Objects, na které by měl být váš Worker navázán. Více informací naleznete v Durable Objects.
kv_namespacesobjectvolitelné- Seznam KV namespace, na které by měl být váš Worker navázán. Více informací naleznete v KV namespaces.
r2_bucketsobjectvolitelné- Seznam R2 bucketů, na které by měl být váš Worker navázán. Více informací naleznete v R2 buckety.
ai_search_namespacesobjectvolitelné- Seznam namespace AI Search, na které by měl být váš Worker navázán. Více informací naleznete v Namespaces AI Search.
ai_searchobjectvolitelné- Seznam bindingů instancí AI Search navázaných přímo na již existující instance ve výchozím namespace. Více informací naleznete v Instance AI Search.
vectorizeobjectvolitelné- Seznam indexů Vectorize, na které by měl být váš Worker navázán. Více informací naleznete v Vectorize indexy.
servicesobjectvolitelné- Seznam service bindingů, na které by měl být váš Worker navázán. Více informací naleznete v service bindings.
queuesobjectvolitelné- Seznam producentů a konzumentů Queue, na které by měl být váš Worker navázán. Více informací naleznete v Queues.
workflowsobjectvolitelné- Seznam Workflows, na které by měl být váš Worker navázán. Více informací naleznete v Workflows.
tail_consumersobjectvolitelné- Seznam Tail Workerů, kterým váš Worker odesílá data. Více informací naleznete v Tail Workers.
secretsobjectvolitelné- Deklaruje názvy tajemství, které váš Worker vyžaduje. Používá se k validaci během lokálního vývoje a nasazení a jako zdroj pravdy pro generování typů. Viz Tajné klíče.
requiredstring[]volitelné : seznam názvů secrets, které musí být nastaveny pro nasazení vašeho Workeru.
secrets_store_secretsobjectvolitelné- Seznam bindingů Secrets Store, na které by měl být váš worker navázán. Více informací naleznete v Secrets Store.
Typy tras
Existují tři typy trasy: Custom Domains, trasy, a workers.dev.
Custom Domains
Custom Domains umožňují připojit váš Worker k doméně nebo subdoméně, aniž byste museli měnit nastavení DNS nebo spravovat certifikáty.
patternstringpovinné- Vzor, podle kterého by se měl Worker spouštět, například,
"example.com".
- Vzor, podle kterého by se měl Worker spouštět, například,
custom_domainbooleanvolitelné- Zda má Worker běžet na Custom Domain, a ne na route. Výchozí hodnota:
false.
- Zda má Worker běžet na Custom Domain, a ne na route. Výchozí hodnota:
Příklad:
{
"routes": [
{
"pattern": "shop.example.com",
"custom_domain": true,
},
],
}[[routes]]
pattern = "shop.example.com"
custom_domain = trueTrasy
Trasy umožňují uživatelům namapovat vzor URL adresy na Worker. Trasu lze nakonfigurovat jako trasu podle ID zóny, trasu podle názvu zóny nebo jako jednoduchou trasu.
Trasa Zone ID
patternstringpovinné- Vzor, podle kterého lze Worker spustit, například,
"example.com/*".
- Vzor, podle kterého lze Worker spustit, například,
zone_idstringpovinné- ID zóny, kterou váš
patternje přidružen. Další informace najdete v Najděte ID zóny a účtu.
- ID zóny, kterou váš
Příklad:
{
"routes": [
{
"pattern": "subdomain.example.com/*",
"zone_id": "<YOUR_ZONE_ID>",
},
],
}[[routes]]
pattern = "subdomain.example.com/*"
zone_id = "<YOUR_ZONE_ID>"Trasa podle názvu zóny
patternstringpovinné- Vzor, podle kterého by se měl Worker spouštět, například,
"example.com/*".
- Vzor, podle kterého by se měl Worker spouštět, například,
zone_namestringpovinné- Název zóny, ke které je vaše
patternje přidružen. Pokud používáte API tokeny, bude to vyžadovatAccountrozsah.
- Název zóny, ke které je vaše
Příklad:
{
"routes": [
{
"pattern": "subdomain.example.com/*",
"zone_name": "example.com",
},
],
}[[routes]]
pattern = "subdomain.example.com/*"
zone_name = "example.com"Jednoduchá trasa
Toto je jednoduchá route, která vyžaduje pouze pattern.
Příklad:
{
"route": "example.com/*",
}route = "example.com/*"workers.dev
Účty Cloudflare Workers obsahují workers.dev subdoména, kterou lze nakonfigurovat v Cloudflare dashboardu.
workers_devbooleanvolitelné- Zda Worker běží na vlastní
workers.devsubdoména účtu. Výchozí hodnota jetrue.
- Zda Worker běží na vlastní
{
"workers_dev": false,
}workers_dev = falseTriggery
Triggery vám umožňují definovat cron výraz pro vyvolání vašeho Workeru scheduled funkci. Viz Podporované výrazy cron.
cronsstring[]povinné- Pole
cronvýrazů. - Chcete-li vypnout Cron Trigger, nastavte
crons = []. Zakomentovánímcronsklíč nedeaktivuje Cron Trigger.
- Pole
Příklad:
{
"triggers": {
"crons": ["* * * * *"],
},
}[triggers]
crons = [ "* * * * *" ]Observabilita
Observabilita nastavení vám umožňuje automaticky přijímat, ukládat, filtrovat a analyzovat protokolová data odesílaná z Cloudflare Workers přímo z dashboardu vašeho Cloudflare Workeru.
enabledbooleanpovinné- Při nastavení na
truena Workeru se protokoly Workeru ukládají trvale. Výchozí hodnota jetruepro všechny nové Workers.
- Při nastavení na
head_sampling_ratenumbervolitelné- Číslo mezi 0 a 1, kde 0 znamená, že se nezaloguje žádný ze sta požadavků, a 1 znamená, že se zaloguje každý požadavek. Pokud
head_sampling_ratenení zadáno, nastaví se výchozí hodnota 1 (100%). Více informací o vzorkování založené na začátku.
- Číslo mezi 0 a 1, kde 0 znamená, že se nezaloguje žádný ze sta požadavků, a 1 znamená, že se zaloguje každý požadavek. Pokud
Příklad:
{
"observability": {
"enabled": true,
"head_sampling_rate": 0.1, // 10% of requests are logged
},
}[observability]
enabled = true
head_sampling_rate = 0.1Vlastní sestavení
Můžete nakonfigurovat vlastní krok sestavení, který se spustí před nasazením Workeru. Podrobnosti najdete v Vlastní sestavení.
commandstringvolitelné- Příkaz použitý k sestavení vašeho Workeru. Na Linuxu a macOS se příkaz spouští v
shshell acmdshell pro Windows.&&a||lze použít operátory shellu.
- Příkaz použitý k sestavení vašeho Workeru. Na Linuxu a macOS se příkaz spouští v
cwdstringvolitelné- Adresář, ve kterém se příkaz spouští.
watch_dirstring | string[]volitelné- Adresář, který se má sledovat kvůli změnám při použití
wrangler dev. Výchozí hodnotou je aktuální pracovní adresář.
- Adresář, který se má sledovat kvůli změnám při použití
Příklad:
{
"build": {
"command": "npm run build",
"cwd": "build_cwd",
"watch_dir": "build_watch_dir",
},
}[build]
command = "npm run build"
cwd = "build_cwd"
watch_dir = "build_watch_dir"Limity
Chování svého Workeru můžete za běhu omezit. Limity jsou podporovány pouze pro Model využití Standard. Limity se vynucují pouze po nasazení do sítě Cloudflare, nikoli při lokálním vývoji. Limit CPU lze nastavit maximálně na 300,000 milisekund (5 minut).
Každý izolát má určitou vestavěnou flexibilitu pro případy, kdy váš Worker příležitostně překročí nastavený limit. Pokud váš Worker začne limit překračovat trvale, jeho spuštění bude ukončeno podle nastaveného limitu.
cpu_msnumbervolitelné- Maximální povolený čas CPU na jedno volání, v milisekundách.
subrequestsnumbervolitelné- Maximální počet subrequestů povolených na jedno volání. Výchozí hodnota je 50 pro účty Free a 10,000 pro placené účty. Maximum pro účet Free je 50 a pro placený účet 10,000,000. Více informací najdete v limity subrequestů s dalšími informacemi.
Příklad:
{
"limits": {
"cpu_ms": 100,
"subrequests": 150,
},
}[limits]
cpu_ms = 100
subrequests = 150Bindings
Browser Run
Workers Browser Run API umožňuje vývojářům programově ovládat instanci headless prohlížeče a interagovat s ní a vytvářet automatizační postupy pro své aplikace a produkty.
A vazba pro prohlížeč poskytne vašemu Workeru autentizovaný koncový bod pro komunikaci s vyhrazenou instancí prohlížeče Chromium.
bindingstringpovinné- Název vazby (binding) použité k odkazování na binding prohlížeče. Nastavená hodnota (řetězec) se použije k odkazování na tento headless prohlížeč ve vašem Workeru. Vazba musí být platný název proměnné v JavaScriptu ↗. Například
binding = "HEAD_LESS"nebobinding = "simulatedBrowser"by byly oba platné názvy pro binding.
- Název vazby (binding) použité k odkazování na binding prohlížeče. Nastavená hodnota (řetězec) se použije k odkazování na tento headless prohlížeč ve vašem Workeru. Vazba musí být platný název proměnné v JavaScriptu ↗. Například
Příklad:
{
"browser": {
"binding": "<BINDING_NAME>",
},
}[browser]
binding = "<BINDING_NAME>"Databáze D1
D1 je bezserverová SQL databáze od Cloudflare. Worker může dotazovat databázi D1 (nebo databáze) vytvořením binding ke každé databázi pro D1 Workers Binding API.
Chcete-li k Workeru připojit databáze D1, přiřaďte pole níže uvedeného objektu do [[d1_databases]] klíč.
-
bindingstringpovinné- Název vazby (binding) použité k odkazování na databázi D1. Nastavená hodnota (řetězec) se použije k odkazování na tuto databázi ve vašem Workeru. Vazba musí být platný název proměnné v JavaScriptu ↗. Například
binding = "MY_DB"nebobinding = "productionDB"by byly oba platné názvy pro binding.
- Název vazby (binding) použité k odkazování na databázi D1. Nastavená hodnota (řetězec) se použije k odkazování na tuto databázi ve vašem Workeru. Vazba musí být platný název proměnné v JavaScriptu ↗. Například
-
database_namestringpovinné- Název databáze. Jde o čitelný název, který umožňuje rozlišit jednotlivé databáze a nastavuje se při prvním vytvoření databáze.
-
database_idstringpovinné- ID databáze. ID databáze je dostupné, jakmile poprvé použijete
wrangler d1 createnebo když zavolátewrangler d1 list, a jednoznačně identifikuje vaši databázi.
- ID databáze. ID databáze je dostupné, jakmile poprvé použijete
-
preview_database_idstringvolitelné- ID náhledu této databáze D1. Pokud je uvedeno,
wrangler devpoužívá toto ID. V opačném případě používádatabase_id. Tato možnost se doporučuje při použitíwrangler dev --remoteabyste se vyhnuli používání produkční databáze.
- ID náhledu této databáze D1. Pokud je uvedeno,
-
migrations_dirstringvolitelné- Adresář migrací obsahující soubory migrací. Ve výchozím nastavení
wrangler d1 migrations createvytvoří složku s názvemmigrations. Můžete použítmigrations_dirpro zadání jiné složky obsahující migrační soubory (například pokud máte nastavení mono-repa a chcete použít jednu instanci D1 napříč vašimi aplikacemi/balíčky). - Další informace najdete v tématu D1 Wrangler
migrationspříkazy a Migrace D1.
- Adresář migrací obsahující soubory migrací. Ve výchozím nastavení
-
migrations_patternstringvolitelné- Glob vzor (relativní k vašemu konfiguračnímu souboru Wrangler) použitý k vyhledání migračních souborů. Výchozí hodnota je
migrations/*.sql. - Tímto zapnete vnořené layouty generované ORM nástroji, jako je Drizzle (například
migrations/*/migration.sql). - Když
migrations_patternje nastaveno,migrations_dirmusí být také nastaveno amigrations_patternmusí začínat tím, comigrations_dirje nastaveno. Každá migrace se zaznamenává do tabulky migrations jako cesta relativní vůčimigrations_dir.
- Glob vzor (relativní k vašemu konfiguračnímu souboru Wrangler) použitý k vyhledání migračních souborů. Výchozí hodnota je
Příklad:
{
"d1_databases": [
{
"binding": "<BINDING_NAME>",
"database_name": "<DATABASE_NAME>",
"database_id": "<DATABASE_ID>",
},
],
}[[d1_databases]]
binding = "<BINDING_NAME>"
database_name = "<DATABASE_NAME>"
database_id = "<DATABASE_ID>"Vazby pro dispatch namespace (Workers for Platforms)
Vazby dispatch namespace umožňují komunikaci mezi dynamic dispatch Worker a dispatch namespace. Vazby dispatch namespace se používají v Workers for Platforms. Workers for Platforms vám pomáhá programově nasazovat serverless funkce jménem vašich zákazníků.
bindingstringpovinné- Název vazby (binding). Nastavená hodnota (řetězec) se použije k odkazování na tuto databázi ve vašem Workeru. Vazba musí být platný název proměnné v JavaScriptu ↗. Například
binding = "MY_NAMESPACE"nebobinding = "productionNamespace"by byly oba platné názvy pro binding.
- Název vazby (binding). Nastavená hodnota (řetězec) se použije k odkazování na tuto databázi ve vašem Workeru. Vazba musí být platný název proměnné v JavaScriptu ↗. Například
namespacestringpovinné- Název dispatch namespace.
outboundobjectvolitelnéservicestringpovinné Název odchozí Worker k navázání.parameterspole volitelné Seznam parametrů pro předání dat z vašeho dynamic dispatch Worker do odchozí Worker.
{
"dispatch_namespaces": [
{
"binding": "<BINDING_NAME>",
"namespace": "<NAMESPACE_NAME>",
"outbound": {
"service": "<WORKER_NAME>",
"parameters": ["params_object"],
},
},
],
}[[dispatch_namespaces]]
binding = "<BINDING_NAME>"
namespace = "<NAMESPACE_NAME>"
[dispatch_namespaces.outbound]
service = "<WORKER_NAME>"
parameters = [ "params_object" ]Durable Objects
Durable Objects poskytují koordinaci s nízkou latencí a konzistentní úložiště pro platformu Workers.
Chcete-li k Workeru připojit Durable Objects, přiřaďte pole níže uvedeného objektu do durable_objects.bindings klíč.
namestringpovinné- Název bindingu, který se používá k odkazování na Durable Object.
class_namestringpovinné- Název exportované třídy objektu Durable Object.
script_namestringvolitelné- Název Workeru, ve kterém je definován Durable Object, pokud se nachází mimo tento Worker. Tuto možnost lze použít jak při lokálním, tak při vzdáleném vývoji. Při lokálním vývoji musíte externí Worker spustit v samostatném procesu (pomocí
wrangler dev). Při vzdáleném vývoji je nutné použít odpovídající vzdálený binding.
- Název Workeru, ve kterém je definován Durable Object, pokud se nachází mimo tento Worker. Tuto možnost lze použít jak při lokálním, tak při vzdáleném vývoji. Při lokálním vývoji musíte externí Worker spustit v samostatném procesu (pomocí
environmentstringvolitelné- Prostředí
script_namek navázání.
- Prostředí
Příklad:
{
"durable_objects": {
"bindings": [
{
"name": "<BINDING_NAME>",
"class_name": "<CLASS_NAME>",
},
],
},
}[[durable_objects.bindings]]
name = "<BINDING_NAME>"
class_name = "<CLASS_NAME>"Exporty
exports pole deklaruje třídy Durable Object, které tento Worker exportuje, a jejich stav životního cyklu. Viz Exporty tříd Durable Object.
Každá položka v exports je indexováno podle názvu třídy Durable Object. Pole jednotlivých položek jsou:
typestringpovinné- U položek tříd Durable Object nastavte hodnotu na
"durable-object".
- U položek tříd Durable Object nastavte hodnotu na
statestringvolitelné- Stav životního cyklu. Jedna z možností
"created"(výchozí, živá třída),"deleted","renamed","transferred", nebo"expecting-transfer".
- Stav životního cyklu. Jedna z možností
storagestringpodmíněný- Vyžadováno, pokud
stateje"created"nebo"expecting-transfer". Jeden z"sqlite"(doporučeno; povinné pro nové jmenné prostory) nebo"legacy-kv"(pouze pro existující jmenné prostory založené na páru klíč-hodnota).
- Vyžadováno, pokud
renamed_tostringpodmíněný- Vyžadováno, pokud
stateje"renamed". Název cílové třídy, který se musí objevit i jako aktivní položka ve stejnémexportsmapu.
- Vyžadováno, pokud
transferred_tostringpodmíněný- Vyžadováno, pokud
stateje"transferred". Název cílového Workeru, který namespace převezme.
- Vyžadováno, pokud
transfer_fromstringpodmíněný- Vyžadováno, pokud
stateje"expecting-transfer". Název zdrojového Workeru, ze kterého se namespace přesouvá.
- Vyžadováno, pokud
Příklad:
{
"exports": {
"MyDurableObject": {
"type": "durable-object",
"storage": "sqlite",
},
"OldClass": {
"type": "durable-object",
"state": "deleted",
},
"OldName": {
"type": "durable-object",
"state": "renamed",
"renamed_to": "NewName",
},
"NewName": {
"type": "durable-object",
"storage": "sqlite",
},
},
}[exports.MyDurableObject]
type = "durable-object"
storage = "sqlite"
[exports.OldClass]
type = "durable-object"
state = "deleted"
[exports.OldName]
type = "durable-object"
state = "renamed"
renamed_to = "NewName"
[exports.NewName]
type = "durable-object"
storage = "sqlite"Migrace
Při provádění změn ve třídách Durable Object u Workeru, který používá starší migrations pole, musíte provést migraci. Více informací najdete v Migrace tříd Durable Object (zastaralé).
tagstringpovinné- Jedinečný identifikátor této migrace.
new_sqlite_classesstring[]volitelné- Nové třídy Durable Object definované s úložištěm SQLite.
new_classesstring[]volitelné- Nové třídy Durable Object definované se starším úložištěm typu klíč-hodnota.
renamed_classes{from: string, to: string}[]volitelné- Třídy Durable Object, které se přejmenovávají.
deleted_classesstring[]volitelné- Třídy Durable Object, které se odebírají.
transferred_classes{from: string, from_script: string, to: string}[]volitelné- Třídy Durable Object, které se přenášejí z jiného Workeru.
Příklad:
{
"migrations": [
{
"tag": "v1",
"new_sqlite_classes": [
// Array of new classes
"DurableObjectExample",
],
},
{
"tag": "v2", // Should be unique for each entry
"renamed_classes": [
// Array of rename directives
{
"from": "DurableObjectExample",
"to": "UpdatedName",
},
],
"deleted_classes": [
// Array of deleted class names
"DeprecatedClass",
],
},
],
}[[migrations]]
tag = "v1"
new_sqlite_classes = [ "DurableObjectExample" ]
[[migrations]]
tag = "v2"
deleted_classes = [ "DeprecatedClass" ]
[[migrations.renamed_classes]]
from = "DurableObjectExample"
to = "UpdatedName"e-mailové vazby
Ze svého Workeru můžete odeslat e-mail o jeho aktivitě na e-mailovou adresu ověřenou na Email Routing. Hodí se to například tehdy, když chcete vědět o spuštění určitých typů událostí.
Než budete moci k Workeru navázat e-mailovou adresu, musíte povolit Email Routing a mít alespoň jeden ověřená e-mailová adresa. Poté objektu (send_email) přiřaďte pole s typem email bindingu, který potřebujete.
namestringpovinné- Název vazby (binding).
destination_addressstringvolitelné- zvolená e-mailová adresa kterým odesíláte e-maily.
allowed_destination_addressesstring[]volitelné- seznam povolených e-mailových adres kterým odesíláte e-maily.
Do souboru Wrangler můžete přidat jeden nebo více typů bindingů. Každý atribut ale musí být na samostatném řádku:
{
"send_email": [
{
"name": "<NAME_FOR_BINDING1>"
},
{
"name": "<NAME_FOR_BINDING2>",
"destination_address": "<YOUR_EMAIL>@example.com"
},
{
"name": "<NAME_FOR_BINDING3>",
"allowed_destination_addresses": [
"<YOUR_EMAIL>@example.com",
"<YOUR_EMAIL2>@example.com"
]
}
]
}[[send_email]]
name = "<NAME_FOR_BINDING1>"
[[send_email]]
name = "<NAME_FOR_BINDING2>"
destination_address = "<YOUR_EMAIL>@example.com"
[[send_email]]
name = "<NAME_FOR_BINDING3>"
allowed_destination_addresses = [ "<YOUR_EMAIL>@example.com", "<YOUR_EMAIL2>@example.com" ]Proměnné prostředí
Proměnné prostředí jsou typem vazby, která vám umožňuje připojit k Workeru textové řetězce nebo hodnoty JSON.
Příklad:
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "my-worker-dev",
"vars": {
"API_HOST": "example.com",
"API_ACCOUNT_ID": "example_user",
"SERVICE_X_DATA": {
"URL": "service-x-api.dev.example",
"MY_ID": 123
}
}
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "my-worker-dev"
[vars]
API_HOST = "example.com"
API_ACCOUNT_ID = "example_user"
[vars.SERVICE_X_DATA]
URL = "service-x-api.dev.example"
MY_ID = 123Hyperdrive
Hyperdrive bindingy vám umožňují interagovat s libovolnou databází Postgres a dotazovat se do ní přímo z Workeru.
bindingstringpovinné- Název vazby (binding).
idstringpovinné- ID konfigurace Hyperdrive.
Příklad:
{
// required for database drivers to function
"compatibility_flags": ["nodejs_compat_v2"],
"hyperdrive": [
{
"binding": "<BINDING_NAME>",
"id": "<ID>",
},
],
}compatibility_flags = [ "nodejs_compat_v2" ]
[[hyperdrive]]
binding = "<BINDING_NAME>"
id = "<ID>"Obrázky
Cloudflare Images vám umožňuje odesílat transformační požadavky pro optimalizaci, změnu velikosti a úpravu obrázků uložených ve vzdálených zdrojích.
Chcete-li k Workeru připojit Images, přiřaďte pole níže uvedeného objektu do images klíč.
binding (povinné). Název vazby (binding) použité k odkazování na Images API.
{
"images": {
"binding": "IMAGES", // i.e. available in your Worker on env.IMAGES
},
}[images]
binding = "IMAGES"KV namespaces
Workers KV je globální úložiště dat typu klíč-hodnota s nízkou latencí. Ukládá data v malém počtu centralizovaných datových center a po přístupu je poté ukládá do mezipaměti v datových centrech Cloudflare.
Chcete-li k Workeru připojit KV namespaces, přiřaďte pole níže uvedeného objektu do kv_namespaces klíč.
bindingstringpovinné- Název vazby (binding) použité k odkazování na KV namespace.
idstringpovinné- ID KV namespace.
preview_idstringvolitelné- ID náhledu tohoto KV namespace. Tato možnost je povinné při použití
wrangler dev --remotepro vývoj proti vzdáleným zdrojům (ale není potřeba s vzdálené bindings). Při lokálním vývoji jde o volitelné pole.wrangler devpoužije toto ID pro KV namespace. V opačném případěwrangler devpoužijeid.
- ID náhledu tohoto KV namespace. Tato možnost je povinné při použití
Příklad:
{
"kv_namespaces": [
{
"binding": "<BINDING_NAME1>",
"id": "<NAMESPACE_ID1>",
},
{
"binding": "<BINDING_NAME2>",
"id": "<NAMESPACE_ID2>",
},
],
}[[kv_namespaces]]
binding = "<BINDING_NAME1>"
id = "<NAMESPACE_ID1>"
[[kv_namespaces]]
binding = "<BINDING_NAME2>"
id = "<NAMESPACE_ID2>"Namespaces AI Search
AI Search je spravovaná vyhledávací služba Cloudflare. namespace je logické seskupení instancí AI Search. Binding uděluje plný přístup ke všem instancím v rámci namespace.
Chcete-li k Workeru připojit AI Search namespaces, přiřaďte pole níže uvedeného objektu do ai_search_namespaces klíč.
bindingstringpovinné- Název vazby (binding) použité k odkazování na jmenný prostor AI Search.
namespacestringpovinné- Název namespace AI Search.
defaultnamespace se automaticky vytvoří pro každý účet. Pokud namespace neexistuje, Wrangler jej při nasazení vytvoří.
- Název namespace AI Search.
Příklad:
{
"ai_search_namespaces": [
{
"binding": "<BINDING_NAME>",
"namespace": "default",
},
],
}[[ai_search_namespaces]]
binding = "<BINDING_NAME>"
namespace = "default"Instance AI Search
Chcete-li se připojit přímo k již existujícímu AI Search instance v výchozí namespace, přiřaďte pole níže uvedeného objektu k ai_search klíč. Tato vazba nepodporuje operace na úrovni namespace, jako je list(), create(), nebo delete().
bindingstringpovinné- Název vazby (binding) použité k odkazování na instanci AI Search.
instance_namestringpovinné- Název instance AI Search. Musí existovat ve výchozím namespace v době nasazení.
Příklad:
{
"ai_search": [
{
"binding": "<BINDING_NAME>",
"instance_name": "<INSTANCE_NAME>",
},
],
}[[ai_search]]
binding = "<BINDING_NAME>"
instance_name = "<INSTANCE_NAME>"Queues
Queues je globální služba pro frontování zpráv od Cloudflare, poskytující zaručené doručení a dávkování zpráv. Chcete-li pracovat s frontou pomocí Workers, potřebujete producer Worker, který bude odesílat zprávy do fronty, a consumer Worker, který bude z fronty stahovat dávky zpráv. Jeden Worker může zprávy produkovat do více front i konzumovat z více front zároveň.
Chcete-li k Workeru typu producer připojit Queues, přiřaďte pole níže uvedeného objektu do [[queues.producers]] klíč.
queuestringpovinné- Název fronty používaný na Cloudflare dashboardu.
bindingstringpovinné- Název vazby (binding) použité k odkazování na frontu ve vašem Workeru. Vazba musí být platný název proměnné v JavaScriptu ↗. Například
binding = "MY_QUEUE"nebobinding = "productionQueue"by byly oba platné názvy pro binding.
- Název vazby (binding) použité k odkazování na frontu ve vašem Workeru. Vazba musí být platný název proměnné v JavaScriptu ↗. Například
delivery_delaynumbervolitelné- Počet sekund, po které zpoždění zpráv odeslaných do fronty ve výchozím nastavení. To lze přepsat jednotlivě pro každou zprávu nebo dávku.
Příklad:
{
"queues": {
"producers": [
{
"binding": "<BINDING_NAME>",
"queue": "<QUEUE_NAME>",
"delivery_delay": 60, // Delay messages by 60 seconds before they are delivered to a consumer
},
],
},
}[[queues.producers]]
binding = "<BINDING_NAME>"
queue = "<QUEUE_NAME>"
delivery_delay = 60Chcete-li k Workeru typu consumer připojit Queues, přiřaďte pole níže uvedeného objektu do [[queues.consumers]] klíč.
queuestringpovinné- Název fronty používaný na Cloudflare dashboardu.
max_batch_sizenumbervolitelné- Maximální počet zpráv povolených v jedné dávce.
max_batch_timeoutnumbervolitelné- Maximální doba v sekundách, po kterou se čeká na naplnění dávky zprávami, než se dávka odešle konzumentskému Workeru.
max_retriesnumbervolitelné- Maximální počet opakování pro zprávu, pokud selže nebo
retryAll()se vyvolá.
- Maximální počet opakování pro zprávu, pokud selže nebo
dead_letter_queuestringvolitelné- Název jiné queue, do které se má zpráva odeslat, pokud její zpracování selže alespoň
max_retrieskrát. - Pokud
dead_letter_queuenení definováno, zprávy, jejichž zpracování opakovaně selhává, se zahodí. - Pokud fronta se zadaným názvem neexistuje, vytvoří se automaticky.
- Název jiné queue, do které se má zpráva odeslat, pokud její zpracování selže alespoň
max_concurrencynumbervolitelné- Maximální počet souběžně běžících konzumentů. Pokud tuto hodnotu nenastavíte, počet volání se bude škálovat až na aktuálně podporované maximum.
- Viz Souběžnost konzumentů další informace o tom, jak se consumers automaticky škálují, zejména při opakování zpráv.
retry_delaynumbervolitelné- Počet sekund, po které zpoždění opakovaných zpráv ve výchozím nastavení, než jsou znovu doručeny konzumentovi. To lze přepsat jednotlivě pro každou zprávu nebo dávku při opakování zpráv.
Příklad:
{
"queues": {
"consumers": [
{
"queue": "my-queue",
"max_batch_size": 10,
"max_batch_timeout": 30,
"max_retries": 10,
"dead_letter_queue": "my-queue-dlq",
"max_concurrency": 5,
"retry_delay": 120, // Delay retried messages by 2 minutes before re-attempting delivery
},
],
},
}[[queues.consumers]]
queue = "my-queue"
max_batch_size = 10
max_batch_timeout = 30
max_retries = 10
dead_letter_queue = "my-queue-dlq"
max_concurrency = 5
retry_delay = 120R2 buckety
Cloudflare R2 Storage umožňuje vývojářům ukládat velké objemy nestrukturovaných dat bez nákladných poplatků za odchozí přenos dat (egress), které jsou typické pro běžné cloudové úložné služby.
Chcete-li k Workeru připojit buckety R2, přiřaďte pole níže uvedeného objektu do r2_buckets klíč.
bindingstringpovinné- Název vazby (binding) použité k odkazování na R2 bucket.
bucket_namestringpovinné- Název tohoto bucketu R2.
jurisdictionstringvolitelné- Jurisdikce, ve které se tento R2 bucket nachází, pokud byla jurisdikce zadána. Další informace najdete v Jurisdikční omezení.
preview_bucket_namestringvolitelné- Název náhledu tohoto bucketu R2. Pokud je uveden,
wrangler devpoužije tento název pro R2 bucket. V opačném případě použijebucket_name. Tato možnost je povinná při použitíwrangler dev --remote(ale není vyžadováno u vzdálené bindings).
- Název náhledu tohoto bucketu R2. Pokud je uveden,
Příklad:
{
"r2_buckets": [
{
"binding": "<BINDING_NAME1>",
"bucket_name": "<BUCKET_NAME1>",
},
{
"binding": "<BINDING_NAME2>",
"bucket_name": "<BUCKET_NAME2>",
},
],
}[[r2_buckets]]
binding = "<BINDING_NAME1>"
bucket_name = "<BUCKET_NAME1>"
[[r2_buckets]]
binding = "<BINDING_NAME2>"
bucket_name = "<BUCKET_NAME2>"Vectorize indexy
A Vectorize index umožňuje vkládat a dotazovat vektorové embeddingy pro sémantické vyhledávání, klasifikaci a další případy použití vektorového vyhledávání.
Chcete-li k Workeru připojit indexy Vectorize, přiřaďte pole níže uvedeného objektu do vectorize klíč.
bindingstringpovinné- Název vazby (binding) použité k odkazování na navázaný index z kódu vašeho Workeru.
index_namestringpovinné- Název indexu, který se má navázat.
Příklad:
{
"vectorize": [
{
"binding": "<BINDING_NAME>",
"index_name": "<INDEX_NAME>",
},
],
}[[vectorize]]
binding = "<BINDING_NAME>"
index_name = "<INDEX_NAME>"Service bindings
Service binding umožňuje odesílat HTTP požadavky jinému Workeru, aniž by tyto požadavky procházely internetem. Požadavek okamžitě zavolá navazující Worker, čímž se sníží latence ve srovnání s požadavkem na službu třetí strany. Viz O Service Bindings.
Chcete-li k Workeru připojit jiné Workers, přiřaďte pole níže uvedeného objektu do services klíč.
bindingstringpovinné- Název vazby (binding) použité k odkazování na navázaný Worker.
servicestringpovinné- Název Workeru.
- Chcete-li se připojit k Workeru v konkrétním prostředí, musíte k názvu Workeru připojit název prostředí. Mělo by to mít formát
<worker-name>-<environment-name>. Chcete-li se například navázat na Worker s názvemworker-nameve svémstagingprostředí,serviceby mělo být nastaveno naworker-name-staging.
entrypointstringvolitelné- Název entrypoint k navázání. Pokud nezadáte vstupní bod, použije se výchozí export Workeru.
Příklad:
{
"services": [
{
"binding": "<BINDING_NAME>",
"service": "<WORKER_NAME>",
"entrypoint": "<ENTRYPOINT_NAME>",
},
],
}[[services]]
binding = "<BINDING_NAME>"
service = "<WORKER_NAME>"
entrypoint = "<ENTRYPOINT_NAME>"Statické prostředky
Viz Assets.
Analytics Engine Datasets
Workers Analytics Engine poskytuje analytiku, observabilitu a záznam dat z Workers. Zapisujte datové body do vazby (binding) svého Workeru a poté data dotazujte pomocí SQL API.
Chcete-li k Workeru připojit Analytics Engine datasets, přiřaďte pole níže uvedeného objektu do analytics_engine_datasets klíč.
bindingstringpovinné- Název vazby (binding) použité k odkazování na datovou sadu.
datasetstringvolitelné- Název datové sady, do které se má zapisovat. Pokud není uveden, ve výchozím nastavení se použije stejný název jako binding.
Příklad:
{
"analytics_engine_datasets": [
{
"binding": "<BINDING_NAME>",
"dataset": "<DATASET_NAME>",
},
],
}[[analytics_engine_datasets]]
binding = "<BINDING_NAME>"
dataset = "<DATASET_NAME>"Certifikáty mTLS
Chcete-li komunikovat s originy, které vyžadují ověření klienta, může Worker v subpožadavcích předložit certifikát pro mTLS. Wrangler poskytuje mtls-certificate příkaz k nahrávání a správě těchto certifikátů.
Chcete-li vytvořit binding na certifikát mTLS pro váš Worker, přiřaďte pole objektů s následující strukturou do mtls_certificates klíč.
bindingstringpovinné- Název vazby (binding) použité k odkazování na certifikát.
certificate_idstringpovinné- ID certifikátu. Wrangler ho zobrazuje pomocí
mtls-certificate uploadamtls-certificate listpříkazy.
- ID certifikátu. Wrangler ho zobrazuje pomocí
Příklad konfiguračního souboru Wrangler, který obsahuje vazbu na certifikát mTLS:
{
"mtls_certificates": [
{
"binding": "<BINDING_NAME1>",
"certificate_id": "<CERTIFICATE_ID1>",
},
{
"binding": "<BINDING_NAME2>",
"certificate_id": "<CERTIFICATE_ID2>",
},
],
}[[mtls_certificates]]
binding = "<BINDING_NAME1>"
certificate_id = "<CERTIFICATE_ID1>"
[[mtls_certificates]]
binding = "<BINDING_NAME2>"
certificate_id = "<CERTIFICATE_ID2>"Bindingy certifikátů mTLS lze pak za běhu použít ke komunikaci se zabezpečenými originy prostřednictvím jejich fetch metoda.
Workers AI
Workers AI umožňuje spouštět modely strojového učení v síti Cloudflare přímo z vašeho vlastního kódu, ať už z Workers, Pages nebo odkudkoli přes REST API.
Na rozdíl od ostatních bindings je tento binding omezen na jeden AI binding na projekt Workeru.
bindingstringpovinné- Název vazby (binding).
Příklad:
{
"ai": {
"binding": "AI", // available in your Worker code on `env.AI`
},
}[ai]
binding = "AI"Workflows
Workflows umožňují vytvářet trvalé, vícekrokové aplikace na platformě Workers. Binding Workflow umožňuje vašemu Workeru programově vytvářet instance Workflow a spravovat je.
Chcete-li k Workeru připojit Workflows, přiřaďte pole níže uvedeného objektu do workflows klíč.
bindingstringpovinné- Název vazby (binding) použité k odkazování na Workflow ve vašem Workeru. Vazba musí být platný název proměnné v JavaScriptu ↗. Například
binding = "MY_WORKFLOW"by byl platný název pro binding.
- Název vazby (binding) použité k odkazování na Workflow ve vašem Workeru. Vazba musí být platný název proměnné v JavaScriptu ↗. Například
namestringpovinné- Název Workflow.
class_namestringpovinné- Název exportované třídy Workflow. Třída
class_namemusí odpovídat názvu třídy Workflow exportované z kódu vašeho Workeru.
- Název exportované třídy Workflow. Třída
script_namestringvolitelné- Název skriptu Workeru, ve kterém je definována třída Workflow. Vyžaduje se pouze v případě, že je Workflow definován v jiném Workeru, než na kterém je nakonfigurován binding.
schedulesstring[]volitelné- Seznam cron plánů, které automaticky vytvářejí nové instance tohoto Workflow.
- Toto použijte, pokud chcete spouštět Workflow v pravidelném intervalu bez definování nejvyšší úrovně
triggers.cronsa samostatnýscheduledhandler. - Použijte verzi Wrangler, která podporuje plánování Workflow. Pokud vaše lokální schéma nerozpoznává
schedules, nejprve aktualizujte Wrangler.
Příklad:
{
"workflows": [
{
"binding": "<BINDING_NAME>",
"name": "<WORKFLOW_NAME>",
"class_name": "<CLASS_NAME>",
},
],
}[[workflows]]
binding = "<BINDING_NAME>"
name = "<WORKFLOW_NAME>"
class_name = "<CLASS_NAME>"Assets
Statické prostředky umožňuje vývojářům provozovat frontendové weby na Workers. Můžete nakonfigurovat adresář assetů, volitelný runtime binding a možnosti konfigurace směrování.
Pro jeden Worker můžete nakonfigurovat pouze jednu kolekci assets.
Následující možnosti jsou k dispozici v části assets klíč.
directorystringvolitelné- Složka se statickými soubory, které se mají obsluhovat.
- Není nutné, pokud používáte Cloudflare Vite plugin, který bude automaticky odkazovat na výstup sestavení klienta.
bindingstringvolitelné- Název vazby (binding) použité k odkazování na prostředky. Nepovinné a užitečné pouze v případě, že je skript Workeru nastaven s
main.
- Název vazby (binding) použité k odkazování na prostředky. Nepovinné a užitečné pouze v případě, že je skript Workeru nastaven s
run_worker_firstboolean | string[]volitelné, výchozí hodnota je false- Ovládá, zda se statická aktiva načítají přímo, nebo zda se volá skript Workeru. Může jít o booleovskou hodnotu (
true/false) nebo pole řetězců se vzory tras s podporou glob vzorů (*) and exception patterns (!prefix). Vzory musí začínat/nebo!/. Více o načítání assetů při používánírun_worker_first.
- Ovládá, zda se statická aktiva načítají přímo, nebo zda se volá skript Workeru. Může jít o booleovskou hodnotu (
html_handling:"auto-trailing-slash" | "force-trailing-slash" | "drop-trailing-slash" | "none"volitelné, výchozí hodnota je "auto-trailing-slash"- Určuje přesměrování a přepisy požadavků na obsah HTML. Další informace o jednotlivých možnostech najdete v směrování assets.
not_found_handling:"single-page-application" | "404-page" | "none"volitelné, výchozí hodnota je "none"- Určuje způsob zpracování požadavků, které neodpovídají žádnému aktivu. Další informace o jednotlivých možnostech najdete v chování směrování.
Příklad:
{
"assets": {
"directory": "./public",
"binding": "ASSETS",
"html_handling": "force-trailing-slash",
"not_found_handling": "404-page",
},
}[assets]
directory = "./public"
binding = "ASSETS"
html_handling = "force-trailing-slash"
not_found_handling = "404-page"Můžete také nakonfigurovat run_worker_first polem vzorů tras:
{
"assets": {
"directory": "./public",
"binding": "ASSETS",
"run_worker_first": [
"/api/*", // API calls go to Worker first
"!/api/docs/*", // EXCEPTION: For /api/docs/*, try static assets first
],
},
}[assets]
directory = "./public"
binding = "ASSETS"
run_worker_first = [ "/api/*", "!/api/docs/*" ]Containers
Můžete definovat Containers pro spuštění vedle vašeho Workeru pomocí containers .
K dispozici jsou následující možnosti:
imagestringpovinné- Image, který se má použít pro kontejner. Může se jednat buď o lokální cestu k
Dockerfile, v takovém případěwrangler deploysestaví a pushne image, nebo to může být reference na image. Podporované registry jsou Cloudflare Registry, Docker Hub, Amazon ECR a Google Artifact Registry. Další informace naleznete v Správa obrázků.
- Image, který se má použít pro kontejner. Může se jednat buď o lokální cestu k
class_namestringpovinné- Odpovídající název třídy Durable Object. Tím se z tohoto Durable Object stane Durable Object s podporou kontejnerů a každá instance bude moci ovládat kontejner. Viz Metody Containeru v Durable Object s podrobnostmi.
instance_typestringvolitelné- Typ instance kontejneru. Určuje množství paměti, CPU a diskového prostoru přidělené instanci
kontejneru. Aktuální možnosti jsou
"lite","basic","standard-1","standard-2","standard-3", a"standard-4". Výchozí hodnota je"lite". Další informace naleznete v dokumentace k typům instancí. - Chcete-li zadat vlastní typ instance, viz zde.
- Typ instance kontejneru. Určuje množství paměti, CPU a diskového prostoru přidělené instanci
kontejneru. Aktuální možnosti jsou
max_instancesstringvolitelné- Maximální počet souběžně běžících instancí kontejneru, které chcete mít v danou chvíli spuštěné. Zastavené kontejnery se do tohoto limitu nezapočítávají, takže celkový počet instancí kontejneru může být vyšší, ale aktivně běžet jich smí najednou pouze tolik, kolik udává tento limit. Pokud by požadavek na spuštění kontejneru tento limit překročil, skončí chybou.
- Výchozí hodnota je 20.
- Tato hodnota se vynucuje pouze při běhu v produkci na síti Cloudflare. Během lokálního vývoje tento limit neplatí, takže můžete spustit více instancí, než je uvedeno.
namestringvolitelné- Název vašeho kontejneru. Používá se jako identifikátor. Ve výchozím stavu jde o kombinaci názvu vašeho Workeru, názvu třídy a vašeho prostředí.
image_build_contextstringvolitelné- Kontext sestavení aplikace, ve výchozím nastavení je to adresář
image.
- Kontext sestavení aplikace, ve výchozím nastavení je to adresář
image_varsRecord<string, string>volitelné- Proměnné sestavení, ekvivalentní použití
--build-arghodnotoudocker build. Pokud chcete svému kontejneru poskytnout proměnné prostředí při runtime, měli byste použijte secret bindings neboenvVarsna třídě Container.
- Proměnné sestavení, ekvivalentní použití
rollout_active_grace_periodnumbervolitelné- Během rollout, minimální počet sekund, po které musí být instance kontejneru již připojena ke svému Durable Object, než ji lze nahradit. Výchozí hodnota je
0. Stále platí s--containers-rollout=immediate.
- Během rollout, minimální počet sekund, po které musí být instance kontejneru již připojena ke svému Durable Object, než ji lze nahradit. Výchozí hodnota je
rollout_step_percentagenumber | number[]volitelné- Procento instancí kontejneru, které se mají aktualizovat v každém rollout kroku. Jedno číslo použije danou velikost kroku (
5,10,20,25,50, nebo100). Pole musí obsahovat vzestupné celočíselné hodnoty od10přes100, končí na100, obsahovat nejvýše 10 položek a neobsahovat víc položek nežmax_instances; jeho hodnoty jsou kumulativní. Výchozí hodnota je100v případě, žemax_instancesje vynecháno nebo menší než2; jinak je výchozí hodnota[10, 100]. Přepište pro jedno nasazení pomocí--containers-rollout=immediate(jeden krok 100 %; nepřepíše ochrannou lhůtu).
- Procento instancí kontejneru, které se mají aktualizovat v každém rollout kroku. Jedno číslo použije danou velikost kroku (
sshobjectvolitelné- Konfigurace SSH přes Wrangler. Více informací najdete v SSH.
wrangler_sshobjectvolitelné, zastaralé, použijte `ssh`- Zastaralý alias pro
ssh. Stále podporováno kvůli zpětné kompatibilitě.
- Zastaralý alias pro
authorized_keysobject[]volitelné- Veřejné klíče, které by se měly přidat do Containeru
authorized_keys.
- Veřejné klíče, které by se měly přidat do Containeru
constraintsobjectvolitelné- Omezení umístění pro kontejner. Více informací najdete v Umístění Containers s podrobnostmi.
constraints.regionsstring[]volitelné- Omezte umístění kontejneru na konkrétní geografické oblasti. Platné hodnoty:
"ENAM","WNAM","EEUR","WEUR","APAC","SAM","ME","OC","AFR".
- Omezte umístění kontejneru na konkrétní geografické oblasti. Platné hodnoty:
constraints.jurisdictionstringvolitelné- Omezte kontejnery na hranice compliance. Platné hodnoty:
"eu","fedramp".
- Omezte kontejnery na hranice compliance. Platné hodnoty:
{
"containers": [
{
"class_name": "MyContainer",
"image": "./Dockerfile",
"max_instances": 10,
"instance_type": "basic", // Optional, defaults to "lite"
"image_vars": {
"FOO": "BAR",
},
"constraints": {
"regions": ["ENAM", "WNAM"],
"jurisdiction": "fedramp",
},
},
],
"durable_objects": {
"bindings": [
{
"name": "MY_CONTAINER",
"class_name": "MyContainer",
},
],
},
"migrations": [
{
"tag": "v1",
"new_sqlite_classes": ["MyContainer"],
},
],
}[[containers]]
class_name = "MyContainer"
image = "./Dockerfile"
max_instances = 10
instance_type = "basic"
[containers.image_vars]
FOO = "BAR"
[containers.constraints]
regions = [ "ENAM", "WNAM" ]
jurisdiction = "fedramp"
[[durable_objects.bindings]]
name = "MY_CONTAINER"
class_name = "MyContainer"
[[migrations]]
tag = "v1"
new_sqlite_classes = [ "MyContainer" ]Vlastní typy instancí
Místo pojmenované typy instancí, můžete nastavit vlastní typ instance samostatným nastavením vCPU, paměti a disku. Podrobnosti najdete v dokumentace k limitům pro omezení vlastních typů instancí.
K dispozici jsou následující možnosti:
vcpunumbervolitelné- Počet vCPU, které bude váš kontejner využívat. Výchozí hodnota je
0.0625(1/16 vCPU).
- Počet vCPU, které bude váš kontejner využívat. Výchozí hodnota je
memory_mibnumbervolitelné- Paměť, kterou má váš kontejner využívat, v MiB. Výchozí hodnota je
256.
- Paměť, kterou má váš kontejner využívat, v MiB. Výchozí hodnota je
disk_mbnumbervolitelné- Disk, který se má použít pro váš kontejner, v MB. Výchozí hodnota je
2000(2GB).
- Disk, který se má použít pro váš kontejner, v MB. Výchozí hodnota je
{
"containers": [
{
"image": "./Dockerfile",
"instance_type": {
"vcpu": 1,
"memory_mib": 1024,
"disk_mb": 4000,
},
},
],
}[[containers]]
image = "./Dockerfile"
[containers.instance_type]
vcpu = 1
memory_mib = 1_024
disk_mb = 4_000SSH
Konfigurace přístupu SSH k instanci Container přes Wrangler. Návod k připojení ke Containers přes SSH najdete v SSH.
K dispozici jsou následující možnosti:
enabledbooleanvolitelné- Zda je povoleno SSH přes Wrangler. Výchozí hodnota je
true. Nastavte nafalsepro zakázání přístupu SSH.
- Zda je povoleno SSH přes Wrangler. Výchozí hodnota je
portnumbervolitelné- Port, na kterém běží služba SSH. Výchozí hodnota je
22.
- Port, na kterém běží služba SSH. Výchozí hodnota je
Autorizované klíče
Autorizovaný klíč je veřejný klíč, který lze použít k připojení přes SSH do Containeru.
Následující jsou vlastnosti klíče:
namestringpovinné- Zobrazovaný název klíče.
public_keystringpovinné- Samotný veřejný klíč.
- Aktuálně pouze
ssh-ed25519typ klíče je podporovaný.
Bundling
Wrangler může fungovat ve dvou režimech: výchozím režimu bundlingu a --no-bundle režim.
V režimu sdružování (bundling) Wrangler projde všechny importy vašeho kódu a vygeneruje jeden JavaScript soubor "entry-point".
Importovaný zdrojový kód je do tohoto souboru entry-point "vložen/sloučen" (inlined/bundled).
Do Workeru je také možné zahrnout další moduly, které se nahrají společně se vstupním bodem (entry point).
Které další moduly se mají do Workeru zahrnout, určíte pomocí rules klíč, díky kterému budou tyto moduly dostupné k importu při vyvolání vašeho Workeru.
Klíč rules klíč bude pole níže uvedeného objektu.
typestringpovinné- Typ modulu. Musí být jeden z těchto:
ESModule,CommonJS,CompiledWasm,TextneboData.
- Typ modulu. Musí být jeden z těchto:
globsstring[]povinné- Pole pravidel glob (například
["**/*.md"]). Viz glob ↗.
- Pole pravidel glob (například
fallthroughbooleanvolitelné- Při nastavení na
trueu pravidla vám to umožňuje mít více pravidel pro stejnýType.
- Při nastavení na
Příklad:
{
"rules": [
{
"type": "Text",
"globs": ["**/*.md"],
"fallthrough": true,
},
],
}[[rules]]
type = "Text"
globs = [ "**/*.md" ]
fallthrough = trueImport modulů uvnitř Workeru
Tyto moduly můžete ve svém Workeru importovat a odkazovat se na ně takto:
import markdown from "./example.md";
export default {
async fetch() {
return new Response(markdown);
},
};Najděte další moduly
Wrangler obvykle zahrne pouze další moduly, které jsou ve vašem zdrojovém kódu staticky importovány, jak je uvedeno ve výše uvedeném příkladu.
Nastavením find_additional_modules na true ve vašem konfiguračním souboru, Wrangler projde strom souborů pod base_dir.
Všechny soubory, které odpovídají rules bude také zahrnut jako nesbalený, externí modul v nasazeném Workeru.
base_dir má jako výchozí adresář obsahující main vstupní bod.
Viz https://developers.cloudflare.com/workers/wrangler/bundling/ ↗ další podrobnosti a příklady.
Python Workers
Ve výchozím nastavení Python Workers sloučí soubory a složky v python_modules v kořenovém adresáři vašeho Workeru (vedle konfiguračního souboru wrangler).
Soubory v tomto adresáři představují vaše vendorované balíčky, kam je nástroj pywrangler kopíruje. V některých případech se může stát, že soubory v této složce jsou příliš velké, a pokud je váš worker nepotřebuje, jen zbytečně zvětšují velikost balíčku.
Chcete-li to vyřešit, můžete některé soubory ze zahrnutí vyloučit. K tomu použijte python_modules.excludes možnost, například:
{
"python_modules": {
"excludes": ["**/*.pyc", "**/__pycache__"],
},
}[python_modules]
excludes = [ "**/*.pyc", "**/__pycache__" ]Tímto se vyloučí veškeré soubory .pyc a __pycache__ adresáře uvnitř libovolného podadresáře v python_modules.
Standardně python_modules.excludes je nastaveno na ["**/*.pyc"], nezapomeňte to proto uvést, když nastavujete jinou hodnotu.
Nastavení lokálního vývoje
Můžete nakonfigurovat různé aspekty lokálního vývoje, například lokální protokol nebo port.
ipstringvolitelné
- IP adresa, na které má naslouchat lokální vývojový server. Výchozí hodnota je
localhost.
portnumbervolitelné
- Port, na kterém má naslouchat místní vývojový server. Výchozí hodnota je
8787.
local_protocolstringvolitelné- Protokol, na kterém lokální vývojový server naslouchá požadavkům. Výchozí hodnota je
http.
- Protokol, na kterém lokální vývojový server naslouchá požadavkům. Výchozí hodnota je
upstream_protocolstringvolitelné- Protokol, na kterém lokální vývojový server přeposílá požadavky. Výchozí hodnota je
https.
- Protokol, na kterém lokální vývojový server přeposílá požadavky. Výchozí hodnota je
hoststringvolitelné- Hostitel, kam se přeposílají požadavky, výchozí hodnota je hostitel prvního
routeWorkeru.
- Hostitel, kam se přeposílají požadavky, výchozí hodnota je hostitel prvního
enable_containersbooleanvolitelné- Určuje, zda se během místní vývojové relace mají povolit kontejnery, pokud jsou nakonfigurované. Výchozí hodnota je
true. Pokud je nastaveno nafalse, zbytek aplikace můžete vyvíjet bez nutnosti používat Docker nebo jiný kontejnerový nástroj, pokud nevoláte žádný kód, který pracuje s kontejnery.
- Určuje, zda se během místní vývojové relace mají povolit kontejnery, pokud jsou nakonfigurované. Výchozí hodnota je
container_enginestringvolitelné- Slouží k lokálnímu vývoji Containers. Wrangler se pokusí automaticky najít správný socket, který použije ke komunikaci s vaším kontejnerovým enginem. Pokud to nefunguje (což se obvykle projevuje jako
internal errorpři pokusu o připojení k vašemu Containeru), můžete zkusit nastavit cestu k soketu pomocí této volby. Můžete to nastavit také prostřednictvím proměnné prostředíDOCKER_HOST.
- Slouží k lokálnímu vývoji Containers. Wrangler se pokusí automaticky najít správný socket, který použije ke komunikaci s vaším kontejnerovým enginem. Pokud to nefunguje (což se obvykle projevuje jako
generate_typesbooleanvolitelné- Vygenerovat typy z konfigurace Workeru. Výchozí hodnota je
false.
- Vygenerovat typy z konfigurace Workeru. Výchozí hodnota je
{
"dev": {
"ip": "192.168.1.1",
"port": 8080,
"local_protocol": "http",
},
}[dev]
ip = "192.168.1.1"
port = 8_080
local_protocol = "http"Tajné klíče
Tajné klíče jsou typem bindingu, který vám umožňuje připojení šifrovaných textových hodnot do vašeho Workeru.
secrets konfigurační vlastnost
secrets konfigurační vlastnost umožňuje deklarovat názvy tajných hodnot, které váš Worker vyžaduje, v konfiguračním souboru Wrangler. Požadované tajné hodnoty se ověřují během lokálního vývoje a nasazení a slouží jako zdroj pravdy pro generování typů.
{
"secrets": {
"required": ["API_KEY", "DB_PASSWORD"],
},
}[secrets]
required = [ "API_KEY", "DB_PASSWORD" ]Generování typů
Když secrets je definována na jakékoli úrovni konfigurace, wrangler types generuje typované vazby z názvů uvedených v secrets.required a už neodvozuje názvy tajných klíčů (secrets) z .dev.vars nebo .env soubory. Díky tomu můžete spouštět generování typů i v prostředích, kde tyto soubory nejsou k dispozici.
Podporují se secrets pro jednotlivá prostředí. Každé pojmenované prostředí vytváří vlastní rozhraní a agregovaný Env typ označuje secrets, které se objevují jen v některých prostředích, jako nepovinné.
Nasadit
Když secrets je definována, wrangler deploy a wrangler versions upload ověřte, že všechny secrets v secrets.required jsou u Workeru nastavené ještě před dokončením operace. Pokud některé požadované secrets chybí, příkaz selže a chybová zpráva uvede, které secrets je třeba nastavit.
Lokální vývoj
Uložte secrets pro použití při lokálním vývoji buď do .dev.vars soubor nebo .env soubor ve stejném adresáři jako konfigurační soubor Wrangleru.
Tyto soubory by měly být formátovány pomocí dotenv ↗ syntax. Například:
SECRET_KEY="value"
API_TOKEN="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"Chcete-li nastavit různé tajné klíče pro každé prostředí Cloudflare, vytvořte soubory s názvem .dev.vars.<environment-name> nebo .env.<environment-name>.
Když v lokálním vývoji vyberete prostředí Cloudflare, načte se nejprve soubor specifický pro dané prostředí, a to před obecným .dev.vars (nebo .env) soubor.
- Při použití
.dev.vars.<environment-name>soubory, všechny secrets musí být definovány pro každé prostředí zvlášť. Pokud.dev.vars.<environment-name>existuje, načte se jen ten;.dev.varssoubor se nenačte. - Naproti tomu všechny odpovídající
.envsoubory se načtou a hodnoty se sloučí. Pro každou proměnnou se použije hodnota z nejspecifičtějšího souboru, a to v tomto pořadí priority:.env.<environment-name>.local(nejvíce specifické).env.local.env.<environment-name>.env(nejméně specifické)
Aliasing modulů
Wrangler můžete nakonfigurovat tak, aby všechna volání importu určitého balíčku nahradil modulem podle vašeho výběru, a to nakonfigurováním alias pole:
{
"alias": {
"foo": "./replacement-module-filepath",
},
}[alias]
foo = "./replacement-module-filepath"export const bar = "baz";S výše uvedenou konfigurací se jakákoli volání na import nebo require() modul foo se bude aliasovat tak, aby ukazoval na váš náhradní modul:
import { bar } from "foo";
console.log(bar); // returns "baz"Problémy s bundlingem
Když Wrangler sestavuje váš Worker do balíčku, může se mu nepodařit vyřešit závislosti. Jednoduchým způsobem, jak problém vyřešit, je nastavit pro tyto závislosti alias.
Před tímto krokem ale ověřte, že je balíček ve vašem projektu správně nainstalován, ať už jako přímá závislost v package.json nebo jako tranzitivní závislost.
Pokud je alias správným řešením vašeho problému se závislostmi, máte několik možností:
- Alternativní implementace : implementujte logiku modulu způsobem kompatibilním s Workers a zajistěte, aby zůstala zachována veškerá funkčnost.
- No-op modul : pokud se logika modulu nepoužívá nebo není relevantní, nasměrujte alias na prázdný soubor. Modul se tím stane no-op a zároveň se vyřeší problém s bundlováním.
- Chyba runtime : pokud se logika modulu nepoužívá a Worker by se o ni neměl ani pokoušet (například kvůli bezpečnostním zranitelnostem), nasměrujte alias na soubor s jediným top-level
throwpříkaz. Tím se řeší problém s bundlováním a zároveň se zajistí, že modul se nikdy skutečně nepoužije.
Příklad: aliasing závislostí z NPM
Pomocí aliasování modulů můžete poskytnout implementaci balíčku NPM, který na Workers nefunguje, a to i v případě, že na tomto balíčku NPM závisíte pouze nepřímo, jako na závislosti jedné ze závislostí svého Workeru.
Některé balíčky NPM například závisí na node-fetch ↗, balíček, který poskytoval polyfill fetch() API, než bylo zabudováno do Node.js.
node-fetch není ve Workers potřeba, protože fetch() API poskytuje prostředí Workers runtime. A node-fetch nefunguje ve Workers, protože se spoléhá na v současnosti nepodporovaná Node.js API z http/https moduly.
Můžete vytvořit alias pro všechny importy node-fetch a místo toho odkazovat přímo na fetch() API, které je součástí prostředí Workers runtime:
{
"alias": {
"node-fetch": "./fetch-polyfill",
},
}[alias]
node-fetch = "./fetch-polyfill"export default fetch;Příklad: aliasing Node.js API
Pomocí aliasování modulů můžete poskytnout vlastní polyfill implementaci Node.js API, které v runtime Workers ještě není dostupné.
Řekněme například, že balíček NPM, na kterém závisíte, volá fs.readFile ↗. Modul fs můžete aliasovat přidáním následujícího do konfiguračního souboru Wrangler vašeho Workeru:
{
"alias": {
"fs": "./fs-polyfill",
},
}[alias]
fs = "./fs-polyfill"export function readFile() {
// ...
}V mnoha případech vám to umožní poskytnout jen tolik API, kolik je potřeba k tomu, aby závislost fungovala. Více o podpoře Node.js API v Cloudflare Workers se dozvíte na dokumentační stránka Cloudflare Workers Node.js API.
Zdrojové mapy
Zdrojové mapy převádět zkompilovaný a minifikovaný kód zpět na původní kód, který jste napsali. Source maps se kombinují se stack trace, který vrátí JavaScript runtime, aby vám zobrazily stack trace.
upload_source_mapsboolean- Když
upload_source_mapsje nastaveno natrue, Wrangler automaticky vygeneruje a nahraje soubory se zdrojovými mapami, když spustítewrangler deploynebowrangler versions deploy.
- Když
Příklad:
{
"upload_source_maps": true,
}upload_source_maps = trueWorkers Sites
Workers Sites umožňuje hostovat statické weby nebo dynamické weby postavené na frameworcích jako Vue nebo React na Workers.
bucketstringpovinné- Adresář obsahující vaše statické soubory. Musí jít o cestu relativní ke konfiguračnímu souboru Wrangler.
includestring[]volitelné- Exkluzivní seznam
.gitignore-styl vzorů, které odpovídají názvům souborů nebo adresářů v umístění vašeho bucketu. Nahrají se pouze odpovídající položky.
- Exkluzivní seznam
excludestring[]volitelné- Seznam
.gitignore-styl vzorů, které odpovídají souborům nebo adresářům ve vašem bucketu, jež se mají z nahrávání vyloučit.
- Seznam
Příklad:
{
"site": {
"bucket": "./public",
"include": ["upload_dir"],
"exclude": ["ignore_dir"],
},
}[site]
bucket = "./public"
include = [ "upload_dir" ]
exclude = [ "ignore_dir" ]Podpora proxy
Firemní sítě mívají ve svém provozu proxy servery, což může někdy způsobit problémy s připojením. Chcete-li nakonfigurovat Wrangler s příslušnými údaji o proxy, přidejte následující proměnné prostředí:
https_proxyHTTPS_PROXYhttp_proxyHTTP_PROXY
Chcete-li to nakonfigurovat na macOS, přidejte HTTP_PROXY=http://<YOUR_PROXY_HOST>:<YOUR_PROXY_PORT> před vašimi příkazy Wrangler.
Příklad:
$ HTTP_PROXY=http://localhost:8080 wrangler devPokud vaše IT oddělení nakonfigurovalo nastavení proxy na vašem počítači, mějte na paměti, že Wrangler při odchozích požadavcích použije první neprázdnou proměnnou prostředí z tohoto seznamu.
Pokud například oba https_proxy a http_proxy jsou nastaveny, Wrangler použije pouze https_proxy pro odchozí požadavky.
Zdroj pravdy
Doporučujeme považovat konfigurační soubor Wrangler za zdroj pravdy pro konfiguraci vašeho Workeru a pokud používáte Wrangler, neprovádět změny Workeru přes Cloudflare dashboard.
Pokud potřebujete provádět změny Workeru z dashboardu Cloudflare, dashboard vygeneruje úryvek TOML, který zkopírujete do konfiguračního souboru Wrangler. Díky tomu bude konfigurační soubor Wrangler vždy aktuální.
Pokud změníte proměnné prostředí v dashboardu Cloudflare, Wrangler je při dalším nasazení přepíše. Pokud chcete toto chování vypnout, přidejte keep_vars = true do konfiguračního souboru Wrangler.
Pokud změníte routes v dashboardu, Wrangler je při dalším nasazení přepíše routes nastavenými v konfiguračním souboru Wrangler. Pokud chcete routes spravovat pouze přes dashboard Cloudflare, odeberte z konfiguračního souboru Wrangler klíče route a routes. Poté přidejte workers_dev = false do konfiguračního souboru Wrangler. Další informace naleznete v Zastaralé funkce.
Wrangler vaše secrets (šifrované proměnné prostředí) nesmaže, pokud nespustíte wrangler secret delete <key>.
Vygenerovaná konfigurace Wrangler
Některé nástroje frameworků nebo vlastní procesy před sestavením vygenerují upravenou konfiguraci Wrangler, která se použije k nasazení kódu Workeru.
V takovém případě může nástroj vytvořit i speciální .wrangler/deploy/config.json soubor, který Wranglera přesměruje na použití vygenerované konfigurace namísto původní, uživatelské konfigurace.
Wrangler používá tuto vygenerovanou konfiguraci pouze pro následující příkazy související s nasazením a vývojem:
wrangler deploywrangler devwrangler versions uploadwrangler versions deploywrangler pages deploywrangler pages functions build
Při spuštění těchto příkazů Wrangler prohledává strom adresářů od aktuálního pracovního adresáře a hledá soubor na cestě .wrangler/deploy/config.json.
Tento soubor smí obsahovat pouze jediný objekt JSON ve tvaru:
{ "configPath": "../../path/to/wrangler.jsonc" }Když tento config.json soubor existuje, Wrangler bude postupovat podle configPath (vzhledem k .wrangler/deploy/config.json soubor) a najde vygenerovaný konfigurační soubor Wrangleru, který se má načíst a použít v aktuálním příkazu.
Wrangler uživateli zobrazí zprávu informující o tom, že konfigurace byla přesměrována do jiného souboru, než je uživatelův konfigurační soubor.
Vygenerovaný konfigurační soubor by neměl obsahovat žádné prostředí. Je to proto, že takový soubor by se v případě potřeby měl vytvářet jako součást kroku sestavení, který by už měl cílit na konkrétní prostředí. Tyto nástroje pro sestavení by měly pro jednotlivá prostředí generovat samostatné konfigurační soubory nasazení.
Příklad vlastního build nástroje
Běžným příkladem použití přesměrované konfigurace je situace, kdy vlastní build nástroj nebo framework potřebuje upravit uživatelskou konfiguraci použitou při nasazení, a to vygenerováním nové konfigurace v dist adresář.
-
Uživatel nejprve napíše kód, který využívá prostředky Cloudflare Workers nakonfigurované prostřednictvím konfiguračního souboru Wrangler, například takto:
{ "$schema": "./node_modules/wrangler/config-schema.json", "name": "my-worker", "main": "src/index.ts", "vars": { "MY_VARIABLE": "production variable", }, "env": { "staging": { "vars": { "MY_VARIABLE": "staging variable", }, }, }, }"$schema" = "./node_modules/wrangler/config-schema.json" name = "my-worker" main = "src/index.ts" [vars] MY_VARIABLE = "production variable" [env.staging.vars] MY_VARIABLE = "staging variable"Tato konfigurace odkazuje na
mainve vstupním bodě kódu uživatele a definujeMY_VARIABLEproměnná ve dvou různých prostředích. -
Poté uživatel spustí vlastní build pro dané prostředí (například
staging). Tím se přečte uživatelský konfigurační soubor Wrangleru, aby se našel vstupní bod zdrojového kódu a nastavení specifická pro dané prostředí:> my-tool build --env=staging -
my-toolgenerujedistadresář, který obsahuje jak zkompilovaný kód, tak nově vygenerovaný konfigurační soubor nasazení obsahující pouze nastavení pro dané prostředí. Vytvoří také.wrangler/deploy/config.jsonsoubor, který Wranglera přesměruje na nový, vygenerovaný konfigurační soubor nasazení:- dist/
- index.js
- wrangler.jsonc
- .wrangler/
- deploy/
- config.json
- deploy/
- dist/
Vygenerovaný dist/wrangler.jsonc může obsahovat:
{
"name": "my-worker",
"main": "./index.js",
"vars": {
"MY_VARIABLE": "staging variable"
}
}Nyní main vlastnost odkazuje na vstupní bod vygenerovaného kódu, není definováno žádné prostředí,
a MY_VARIABLE proměnná se přeloží na hodnotu prostředí staging.
A .wrangler/deploy/config.json obsahuje cestu k vygenerovanému konfiguračnímu souboru:
{
"configPath": "../../dist/wrangler.jsonc"
}