Cloudflare Workers ti consente di eseguire codice JavaScript (o Rust/Wasm) ai margini della rete, vicino all'utente finale. Ciò riduce la latenza, migliora le prestazioni e semplifica l'architettura eliminando i server tradizionali. Nel 2025, la piattaforma offrirà funzionalità avanzate come KV Store, Durable Objects, Workers Sites e integrazione nativa con Cloudflare Pages.
Perché utilizzare i lavoratori?
- Latenza minima, il codice viene eseguito nei data center globali, in genere <10 ms.
- Ridimensionamento automatico, non è necessario effettuare il provisioning delle istanze.
- Modello pay-per-use, fatturazione in base alle richieste e al tempo CPU.
- Integrazione con servizi Cloudflare, firewall, CDN, Argo, Immagini, ecc.
- Supporto per più lingue, JavaScript, TypeScript, Rust, C, Go tramite WebAssembly.
Architettura di base di un Lavoratore
- Script, funzione
fetchche riceveRequeste restituisceResponse. - Instradamento, definito in
wrangler.tomlo tramite Percorsi dei Lavoratori. - Archiviazione opzionale, KV o oggetti durevoli per stato persistente.
- Distribuzione,
wrangler publisho integrazione CI/CD.
Richiedi flusso
Il percorso di una richiesta è diretto: l'utente accede a Cloudflare Edge tramite HTTPS, che esegue il Worker Script nel data center più vicino. Il lavoratore legge e scrive nell'archivio KV, comunica con oggetti durevoli quando necessita di uno stato coerente e restituisce la risposta all'utente. Parallelamente, Edge fornisce, quando possibile, i contenuti già memorizzati nella cache della CDN, evitando inutili rieseguizioni.
Configurazione del progetto con Wrangler
## Instalar Wrangler (CLI oficial) npm i -g @cloudflare/wrangler ## Inicializar projeto wrangler init my-worker --type=javascript ## Editar wrangler.toml (exemplo)
Esempio minimo di wrangler.toml:
name = "my-worker" type = "javascript" account_id = "YOUR_ACCOUNT_ID" workers_dev = true compatibility_date = "2025-01-01" [vars] API_KEY = "${API_KEY}" [[kv_namespaces]] binding = "MY_KV" id = "YOUR_KV_ID"
Scrittura base (3 righe)
addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }); async function handleRequest(request) { return new Response('Olá do Cloudflare Workers!', {status: 200}); }
Questo codice risponde "Ciao da Cloudflare Workers!" a qualsiasi richiesta.
Instradamento del percorso
In wrangler.toml aggiungi percorsi per domini specifici:
routes = ["example.com/api/*", "api.example.com/*"]
Ora il lavoratore si attiverà solo per gli URL che corrispondono al modello.
Utilizzo di KV Store (esempio su 2 righe)
await MY_KV.put('visitas', '1'); let count = await MY_KV.get('visitas');
KV offre latenza millisecondo e alta disponibilità globale.
Oggetti durevoli, stato coerente per chiave (esempio 3 righe)
class Counter { constructor(state) { this.state = state; } async fetch(request) { let value = await this.state.storage.get('count') || 0; await this.state.storage.put('count', ++value); return new Response(String(value)); } } addEventListener('fetch', event => event.respondWith(handleRequest(event.request)));
Gli oggetti durevoli mantengono lo stato sincrono tra le istanze, ideale per contatori, chat room, ecc.
Sicurezza e migliori pratiche
- Convalida dell'input, non fidarsi mai dei parametri URL; utilizzare
URLSearchParamse igienizzare. - Limite CPU, i Worker hanno un limite di 50 ms per richiesta; evitare giri lunghi.
- Utilizzo di variabili d'ambiente, memorizza i segreti in
wrangler secret putanziché nel codice fisso. - CORS, configura le intestazioni corrette per le API pubbliche.
- Limitazione della velocità, combinata con le regole del firewall Cloudflare per proteggere dagli abusi.
Test locale
wrangler dev
Il comando avvia un server locale che simula l'ambiente Edge.
Distribuisci tramite CI/CD (esempio di azioni GitHub), 5 righe
name: Deploy Workers on: push jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - run: npm i -g @cloudflare/wrangler - run: wrangler publish env: CF_API_TOKEN: $
Osservabilità
- Log,
wrangler tailvisualizza i log in tempo reale. - Metriche, Cloudflare Analytics mostra latenza, errori, traffico.
- Tracciamento errori, usa
try/catche invia i dettagli a Sentry o Workers KV.
Lista di controllo rapida
- Installa la CLI di Wrangler.
- Configura
wrangler.tomlcon account_id e KV/DO. - Scrivi il gestore dello script
fetch. - Imposta percorsi o utilizza
workers_dev. - Testare localmente con
wrangler dev. - Configura i segreti tramite
wrangler secret. - Distribuisci con
wrangler publisho CI. - Monitora i registri (
wrangler tail). - Applica le regole del firewall per la sicurezza.
Conclusione
Cloudflare Workers offre elaborazione ultraveloce all'edge, consentendoti di creare API serverless, siti Web statici, trasformazioni di immagini e logica aziendale. Seguendo le best practice sulla sicurezza, utilizzando KV o oggetti durevoli per lo stato e l'integrazione con pipeline CI/CD, puoi scalare le applicazioni a livello globale con costi prevedibili e prestazioni elevate.
Hai già sviluppato un lavoratore? Condividi i tuoi suggerimenti e le tue sfide nei commenti!
Leggi anche
- [WebAssembly al limite: perché è importante iniziare in modo rapido e isolato27
- Operatori Cloudflare in produzione: cosa cambia dopo hello world
- Sviluppo di applicazioni serverless con AWS Lambda e Cloudflare Workers nel 2025
- Sviluppo Web moderno nel 2025: tendenze, strumenti e strategie innovative
- Oggetti durevoli di Cloudflare: stato coerente all'edge: cosa cambia veramente
- Cloudflare Workers vs Pages: la differenza che conta prima di scegliere
