Chapter 04 · Cloudflare Deploy
Subchapter 4.41
references/bindings/README.mdMarkdown4 KBView on GitHub
Expert guidance on Cloudflare Workers Bindings - the runtime APIs that connect Workers to Cloudflare platform resources.
Bindings are how Workers access Cloudflare resources (storage, compute, services) via the env object. They’re configured in wrangler.jsonc, type-safe via TypeScript, and zero-overhead at runtime.
| Binding | Use Case | Access Pattern |
|---|---|---|
| KV | Key-value cache, CDN-backed reads | env.MY_KV.get(key) |
| R2 | Object storage (S3-compatible) | env.MY_BUCKET.get(key) |
| D1 | SQL database (SQLite) | env.DB.prepare(sql).all() |
| Durable Objects | Coordination, real-time state | env.MY_DO.get(id) |
| Vectorize | Vector embeddings search | env.VECTORIZE.query(vector) |
| Queues | Async message processing | env.MY_QUEUE.send(msg) |
| Binding | Use Case | Access Pattern |
|---|---|---|
| Service | Worker-to-Worker RPC | env.MY_SERVICE.fetch(req) |
| Workers AI | LLM inference | env.AI.run(model, input) |
| Browser Rendering | Headless Chrome | env.BROWSER.fetch(url) |
| Binding | Use Case | Access Pattern |
|---|---|---|
| Analytics Engine | Custom metrics | env.ANALYTICS.writeDataPoint(data) |
| mTLS | Client certificates | env.MY_CERT (string) |
| Hyperdrive | Database pooling | env.HYPERDRIVE.connectionString |
| Rate Limiting | Request throttling | env.RATE_LIMITER.limit(id) |
| Workflows | Long-running workflows | env.MY_WORKFLOW.create() |
| Binding | Use Case | Access Pattern |
|---|---|---|
| Environment Variables | Non-sensitive config | env.API_URL (string) |
| Secrets | Sensitive values | env.API_KEY (string) |
| Text/Data Blobs | Static files | env.MY_BLOB (string) |
| WASM | WebAssembly modules | env.MY_WASM (WebAssembly.Module) |
Need persistent storage?
Need AI/compute?
Need async processing?
Need config?
{
"kv_namespaces": [
{ "binding": "MY_KV", "id": "your-kv-id" }
]
}npx wrangler typesexport default {
async fetch(request, env, ctx) {
await env.MY_KV.put('key', 'value');
return new Response('OK');
}
}Bindings are fully typed via wrangler types. See api.md for details.
Zero-overhead access: Bindings compiled into Worker, no network calls to access
Type-safe: Full TypeScript support via wrangler types
Per-environment: Different IDs for dev/staging/production
Secrets vs Vars: Secrets encrypted at rest, never in config files