Pular para o conteúdo
Skillpedia
APIs e servidores (backend)48 mil · #2555

cloudflare-workers

Permite que seu agente crie e implante funções na ponta com Cloudflare Workers. É útil para APIs, tarefas agendadas e como intermediário de rede.

O que ela faz

Cloudflare Workers permite que você crie e execute pequenos programas de código (chamados 'funções') diretamente na rede global da Cloudflare. Isso significa que suas aplicações podem responder muito rapidamente, onde quer que seus usuários estejam.

Quando usar

  • ✓Criar APIs (serviços que outros programas usam para se comunicar) que precisam ser muito rápidas.
  • ✓Adicionar verificações de segurança ou ajustes em requisições antes que elas cheguem ao seu servidor principal.
  • ✓Executar tarefas automáticas em horários específicos sem precisar de um servidor sempre ligado.

Exemplo do que pedir para a IA

“Crie uma API simples que diga 'Olá Mundo' quando alguém a acessar.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/cloudflare-workers/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/cloudflare-workers/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Você escreve seu código em JavaScript ou TypeScript e usa uma ferramenta chamada Wrangler para enviar esse código para a rede da Cloudflare. A Cloudflare cuida de rodar seu código perto dos seus usuários.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill cloudflare-workers

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/cloudflare-workers/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Cloudflare Workers

Implante funções JavaScript e TypeScript na rede de borda global da Cloudflare com inicializações frias em menos de um milissegundo.

Quando Usar

  • Construir APIs e microsserviços leves na borda.
  • Adicionar middleware (autenticação, limitação de taxa, injeção de cabeçalho) na frente de servidores de origem.
  • Executar jobs agendados (cron jobs) sem manter infraestrutura.
  • Processar webhooks, transformações de imagem ou lógica de testes A/B.
  • Servir conteúdo dinâmico de bindings de armazenamento KV, D1 ou R2.

Pré-requisitos

  • Node.js 18+ instalado localmente.
  • Wrangler CLI: npm install -g wrangler.
  • Conta Cloudflare (o plano gratuito suporta 100.000 requisições/dia).
  • Autenticado: wrangler login ou defina CLOUDFLARE_API_TOKEN.

Início Rápido

# Scaffold a new Worker project
npm create cloudflare@latest my-worker
cd my-worker

# Login to Cloudflare
npx wrangler login

# Start local development server (port 8787)
npx wrangler dev

# Deploy to production
npx wrangler deploy

Comandos Essenciais do Wrangler

# Local development with remote bindings (KV, D1, R2)
npx wrangler dev --remote

# Deploy to a specific environment
npx wrangler deploy --env staging

# Set a secret (prompts for value)
npx wrangler secret put API_TOKEN
npx wrangler secret put API_TOKEN --env staging

# List secrets
npx wrangler secret list

# Tail production logs in real time
npx wrangler tail

# Tail with filters
npx wrangler tail --status=error --search="timeout"

# View deployment versions
npx wrangler deployments list

# Rollback to a previous deployment
npx wrangler rollback

Configuração do Wrangler

# wrangler.toml
name = "my-api"
main = "src/index.ts"
compatibility_date = "2024-09-01"
compatibility_flags = ["nodejs_compat"]

# Custom routes
routes = [
  { pattern = "api.example.com/*", zone_name = "example.com" }
]

# Or use a workers.dev subdomain
# workers_dev = true

# Environment variables (non-secret)
[vars]
ENVIRONMENT = "production"
API_VERSION = "v2"

# Staging environment override
[env.staging]
name = "my-api-staging"
routes = [
  { pattern = "api-staging.example.com/*", zone_name = "example.com" }
]
[env.staging.vars]
ENVIRONMENT = "staging"

Exemplos de Worker

Roteador Básico de API

// src/index.ts
export interface Env {
  ENVIRONMENT: string;
}

export default {
  async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
    const url = new URL(request.url);

    switch (url.pathname) {
      case "/":
        return new Response("OK", { status: 200 });

      case "/api/health":
        return Response.json({
          status: "healthy",
          env: env.ENVIRONMENT,
          timestamp: new Date().toISOString(),
        });

      case "/api/data":
        if (request.method !== "POST") {
          return new Response("Method Not Allowed", { status: 405 });
        }
        const body = await request.json();
        // Process in the background after returning response
        ctx.waitUntil(logToAnalytics(body));
        return Response.json({ received: true });

      default:
        return new Response("Not Found", { status: 404 });
    }
  },
};

async function logToAnalytics(data: unknown): Promise<void> {
  await fetch("https://analytics.example.com/ingest", {
    method: "POST",
    body: JSON.stringify(data),
    headers: { "Content-Type": "application/json" },
  });
}

Middleware: Limitação de Taxa com KV

// src/rate-limiter.ts
interface Env {
  RATE_LIMIT_KV: KVNamespace;
  ORIGIN_URL: string;
}

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const ip = request.headers.get("CF-Connecting-IP") || "unknown";
    const key = `ratelimit:${ip}`;
    const window = 60; // seconds
    const maxRequests = 100;

    const current = parseInt((await env.RATE_LIMIT_KV.get(key)) || "0");

    if (current >= maxRequests) {
      return new Response("Too Many Requests", {
        status: 429,
        headers: { "Retry-After": String(window) },
      });
    }

    await env.RATE_LIMIT_KV.put(key, String(current + 1), {
      expirationTtl: window,
    });

    // Forward to origin
    const originRequest = new Request(env.ORIGIN_URL + new URL(request.url).pathname, request);
    return fetch(originRequest);
  },
};

Binding de Armazenamento KV

# wrangler.toml
[[kv_namespaces]]
binding = "MY_KV"
id = "abc123def456"

# Namespace de pré-visualização para desenvolvimento local
[[kv_namespaces]]
binding = "MY_KV"
id = "abc123def456"

…
Perguntas frequentes

Preciso pagar para usar Cloudflare Workers?

O plano gratuito da Cloudflare oferece um limite generoso de requisições por dia, o que é suficiente para muitos projetos pequenos e testes.

O que é 'edge'?

'Edge' se refere aos locais físicos onde a Cloudflare tem servidores espalhados pelo mundo. Rodar código no 'edge' significa que ele roda mais perto do usuário final, tornando tudo mais rápido.

O que são 'cold starts'?

É o pequeno atraso que pode acontecer quando seu código é executado pela primeira vez após um período de inatividade. Cloudflare Workers são conhecidos por terem 'cold starts' muito rápidos, quase imperceptíveis.

Detalhes

Descrição original do autor

Build and deploy edge functions with Cloudflare Workers and Wrangler. Use for APIs, cron jobs, and edge middleware.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2555
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas