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
- Script, función
fetchque recibeRequesty devuelveResponse. - Ruta, definida en
wrangler.tomlo mediante Rutas de Trabajadores. - Almacenamiento opcional, KV u objetos duraderos para estado persistente.
- Implementar,
wrangler publisho 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
URLSearchParamsy 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 puten 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 tailmuestra registros en tiempo real. - Métricas, Cloudflare Analytics muestra latencia, errores y tráfico.
- Seguimiento de errores, use
try/catchy envíe los detalles a Sentry o Workers KV.
Lista de verificación rápida
- [] Instale Wrangler CLI.
- Configurar
wrangler.tomlcon account_id y KV/DO. - [] Escribir script
fetchmanejador. - Establecer rutas o utilizar
workers_dev. - Pruebe localmente con
wrangler dev. - Configurar secretos a través de
wrangler secret. - Implementar con
wrangler publisho 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
- [WebAssembly en el borde: por qué es importante comenzar de forma rápida y aislada27
- Trabajadores de Cloudflare en producción: qué cambia después de hello world
- Desarrollando aplicaciones sin servidor con AWS Lambda y Cloudflare Workers en 2025
- Desarrollo web moderno en 2025: tendencias, herramientas y estrategias innovadoras
- Objetos duraderos de Cloudflare: estado consistente en el borde: lo que realmente cambia
- Cloudflare Workers vs Pages: la diferencia que importa antes de elegir
