Cloudflare Workers
Serverless
Edge Computing
JavaScript
Rust
KV Store
Durable Objects
API Gateway
Security
Performance
Deployment

Lavoratori Cloudflare: guida pratica all'edge computing serverless

Lavoratori Cloudflare: guida pratica all'edge computing serverless

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

  1. Script, funzione fetch che riceve Request e restituisce Response.
  2. Instradamento, definito in wrangler.toml o tramite Percorsi dei Lavoratori.
  3. Archiviazione opzionale, KV o oggetti durevoli per stato persistente.
  4. Distribuzione, wrangler publish o 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 URLSearchParams e 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 put anziché 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 tail visualizza i log in tempo reale.
  • Metriche, Cloudflare Analytics mostra latenza, errori, traffico.
  • Tracciamento errori, usa try/catch e invia i dettagli a Sentry o Workers KV.

Lista di controllo rapida

  • Installa la CLI di Wrangler.
  • Configura wrangler.toml con 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 publish o 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