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

Trabajadores de Cloudflare: guía práctica para la informática perimetral sin servidor

Trabajadores de Cloudflare: guía práctica para la informática perimetral sin servidor

Cloudflare Workers le permite ejecutar código JavaScript (o Rust/Wasm) en el borde de la red, cerca del usuario final. Esto reduce la latencia, mejora el rendimiento y simplifica la arquitectura eliminando los servidores tradicionales. En 2025, la plataforma ofrece funciones avanzadas como KV Store, Durable Objects, Workers Sites e integración nativa con Cloudflare Pages.

¿Por qué utilizar trabajadores?

  • Latencia mínima, el código se ejecuta en centros de datos globales, normalmente <10 ms.
  • Escalado automático, no es necesario aprovisionar instancias.
  • Modelo de pago por uso, facturación basada en solicitudes y tiempo de CPU.
  • Integración con servicios de Cloudflare, firewall, CDN, Argo, Imágenes, etc.
  • Compatibilidad con varios idiomas, JavaScript, TypeScript, Rust, C, vaya a través de WebAssembly.

Arquitectura básica de un trabajador

  1. Script, función fetch que recibe Request y devuelve Response.
  2. Ruta, definida en wrangler.toml o mediante Rutas de Trabajadores.
  3. Almacenamiento opcional, KV u objetos duraderos para estado persistente.
  4. Implementar, wrangler publish o integración CI/CD.

Flujo de solicitudes

La ruta de una solicitud es directa: el usuario accede a Cloudflare Edge a través de HTTPS, que ejecuta el Worker Script en el centro de datos más cercano. El trabajador lee y escribe en KV Store, se comunica con Durable Objects cuando necesita un estado consistente y devuelve la respuesta al usuario. En paralelo, Edge ofrece contenido ya almacenado en caché por la CDN siempre que sea posible, evitando reejecuciones innecesarias.

Configurando el proyecto con Wrangler

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

Ejemplo 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"

Guión básico (3 líneas)

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

Este código responde “¡Hola de parte de los trabajadores de Cloudflare!” a cualquier solicitud.

Enrutamiento de ruta

En wrangler.toml agregue rutas para dominios específicos:

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

Ahora el trabajador solo activará las URL que coincidan con el patrón.

Uso de KV Store (ejemplo de 2 líneas)

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

KV ofrece latencia de milisegundos y alta disponibilidad global.

Objetos duraderos, estado consistente por clave (ejemplo 3 líneas)

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

Los objetos duraderos mantienen un estado sincrónico entre instancias, ideal para mostradores, salas de chat, etc.

Seguridad y mejores prácticas

  • Validación de entrada, nunca confíes en los parámetros de URL; use URLSearchParams y desinfecte.
  • Límite de CPU, los trabajadores tienen un límite de 50 ms por solicitud; Evite bucles largos.
  • Uso de variables de entorno, almacenar secretos en wrangler secret put en lugar de codificarlos.
  • CORS, configura encabezados adecuados para las API públicas.
  • Limitación de velocidad, combinado con las reglas de firewall de Cloudflare para proteger contra el abuso.

Pruebas localmente

wrangler dev

El comando inicia un servidor local que simula el entorno Edge.

Implementar mediante CI/CD (ejemplo de acciones de GitHub), 5 líneas

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

Observabilidad

  • Registros, wrangler tail muestra registros en tiempo real.
  • Métricas, Cloudflare Analytics muestra latencia, errores y tráfico.
  • Seguimiento de errores, use try/catch y envíe los detalles a Sentry o Workers KV.

Lista de verificación rápida

  • [] Instale Wrangler CLI.
  • Configurar wrangler.toml con account_id y KV/DO.
  • [] Escribir script fetch manejador.
  • Establecer rutas o utilizar workers_dev.
  • Pruebe localmente con wrangler dev.
  • Configurar secretos a través de wrangler secret.
  • Implementar con wrangler publish o CI.
  • Monitorear registros (wrangler tail).
  • [] Aplicar reglas de firewall por seguridad.

Conclusión

Cloudflare Workers ofrece computación ultrarrápida en el borde, lo que le permite crear API sin servidor, sitios web estáticos, transformaciones de imágenes y lógica empresarial. Si sigue las mejores prácticas de seguridad, utiliza KV u objetos duraderos para el estado y se integra con canalizaciones de CI/CD, puede escalar aplicaciones globalmente con costos predecibles y alto rendimiento.


¿Ya has desarrollado un Trabajador? ¡Comparte tus consejos y desafíos en los comentarios!

Lea también