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

Cloudflare Workers: Guia Prático para Serverless Edge Computing

Cloudflare Workers: Guia Prático para Serverless Edge Computing

Cloudflare Workers permite executar código JavaScript (ou Rust/Wasm) na borda da rede, próximo ao usuário final. Isso reduz latência, melhora performance e simplifica a arquitetura ao eliminar servidores tradicionais. Em 2025, a plataforma oferece recursos avançados como KV Store, Durable Objects, Workers Sites e integração nativa com o Cloudflare Pages.

Por que usar Workers?

  • Latência mínima, código roda em data centers globais, tipicamente < 10 ms.
  • Escalabilidade automática, sem necessidade de provisionamento de instâncias.
  • Modelo de pagamento por uso, cobrança baseada em solicitações e tempo de CPU.
  • Integração com serviços Cloudflare, firewall, CDN, Argo, Images, etc.
  • Suporte a múltiplas linguagens, JavaScript, TypeScript, Rust, C, Go via WebAssembly.

Arquitetura básica de um Worker

  1. Script, função fetch que recebe Request e devolve Response.
  2. Roteamento, definido no wrangler.toml ou via Workers Routes.
  3. Armazenamento opcional, KV ou Durable Objects para estado persistente.
  4. Deploy, wrangler publish ou integração CI/CD.

Fluxo de uma requisição

O caminho de uma requisição é direto: o usuário acessa via HTTPS o Cloudflare Edge, que executa o Worker Script no data center mais próximo. O Worker lê e escreve no KV Store, comunica-se com Durable Objects quando precisa de estado consistente e devolve a resposta ao usuário. Em paralelo, o Edge serve conteúdo já cacheado pelo CDN sempre que possível, evitando reexecução desnecessária.

Configurando o projeto com Wrangler

## Instalar Wrangler (CLI oficial) npm i -g @cloudflare/wrangler ## Inicializar projeto wrangler init my-worker --type=javascript ## Editar wrangler.toml (exemplo)

Exemplo mínimo de 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"

Script básico (3 linhas)

addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }); async function handleRequest(request) { return new Response('Olá do Cloudflare Workers!', {status: 200}); }

Esse código responde “Olá do Cloudflare Workers!” a qualquer requisição.

Roteamento de caminhos

No wrangler.toml adicione rotas para domínios específicos:

routes = ["example.com/api/*", "api.example.com/*"]

Agora o Worker será acionado apenas para URLs que correspondam ao padrão.

Utilizando KV Store (exemplo de 2 linhas)

await MY_KV.put('visitas', '1'); let count = await MY_KV.get('visitas');

O KV oferece latência de milissegundos e alta disponibilidade global.

Durable Objects, estado consistente por chave (exemplo 3 linhas)

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)));

Durable Objects mantêm estado síncrono entre instâncias, ideal para contadores, salas de chat, etc.

Segurança e boas-práticas

  • Validação de entrada, nunca confie em parâmetros de URL; use URLSearchParams e sanitize.
  • Limite de CPU, Workers têm limite de 50 ms por solicitação; evite loops longos.
  • Uso de variáveis de ambiente, armazene segredos em wrangler secret put ao invés de hard-code.
  • CORS, configure cabeçalhos adequados para APIs públicas.
  • Rate limiting, combine com Cloudflare Firewall Rules para proteger contra abuso.

Testando localmente

wrangler dev

O comando inicia um servidor local que simula o ambiente Edge.

Deploy via CI/CD (exemplo GitHub Actions), 5 linhas

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: $

Observabilidade

  • Logs, wrangler tail exibe logs em tempo real.
  • Metrics, Cloudflare Analytics mostra latência, erros, tráfego.
  • Error Tracking, use try/catch e envie detalhes a Sentry ou a Workers KV.

Checklist rápido

  • Instalar Wrangler CLI.
  • Configurar wrangler.toml com account_id e KV/DO.
  • Escrever script fetch handler.
  • Definir rotas ou usar workers_dev.
  • Testar localmente com wrangler dev.
  • Configurar secrets via wrangler secret.
  • Deploy com wrangler publish ou CI.
  • Monitorar logs (wrangler tail).
  • Aplicar regras de firewall para segurança.

Conclusão

Cloudflare Workers oferece computação ultra-rápida na borda, permitindo criar APIs, sites estáticos, transformações de imagens e lógica de negócios sem servidores. Ao seguir as boas-práticas de segurança, usar KV ou Durable Objects para estado e integrar com pipelines CI/CD, você pode escalar aplicações globalmente com custos previsíveis e alta performance.


Já desenvolveu um Worker? Compartilhe suas dicas e desafios nos comentários!

Leia também

Cloudflare Workers: Guia Prático para Serverless Edge Computing | Matheus Breguêz