Infraestrutura · Functions

Suba uma função, ganhe uma URL. Sem servidor, sem build.

Você escreve um módulo com default export e manda por HTTP. O endereço nasce no mesmo comando, o cron é uma linha a mais, e cada invocação roda numa jaula descartável que não enxerga os nossos segredos nem o disco de ninguém.

Comece de graça, sem cartão: a chave sai na hora. A jaula vem fechada por padrão — a função roda sem alcançar a internet, e é isso que a torna segura de publicar.

Por que isso existe

Escrever a função leva
UMA HORA.

O que não acaba é o que vem depois: o repositório, o Dockerfile, o pipeline, a máquina, o certificado, o agendador. Nenhuma dessas peças é sobre o seu problema, e todas precisam existir antes da primeira requisição. É esse pedaço que já está escrito aqui.

  • O webhook de vinte linhas que virou projeto de infraestrutura
  • O script de madrugada que mora no computador de alguém
  • O código de terceiro que ninguém quer rodar perto dos segredos

O caminho inteiro

Escreve, publica, agenda.

Quatro comandos — e nenhum deles é de build.

1 · Escrever

Um módulo com default export

Sem framework, sem decorator, sem arquivo de configuração ao lado. Request entra, Response sai — as primitivas que você já usa.

hello.js
export default (req, ctx) => {
  return Response.json({
    metodo: req.method,
    query: ctx.query
  })
}

2 · Publicar

Um POST, e o endereço já existe

O código vai como string num JSON: sem build, sem zip, sem SDK. Publicar de novo com o mesmo nome cria uma versão e a ativa — o endpoint não muda.

bash
$ curl -X POST https://functions.manager.myinfrastructure.click\
/functions \
  -H "x-api-key: fk_…" \
  -d '{"name":"hello",
       "code":"export default …"}'

→ https://…/fn/hello

3 · Agendar

A mesma função, agora com relógio

O cron não é outro deploy: é a mesma função com uma expressão. O relógio vive no processo primário e arma os workers por IPC, então dispara uma vez — não uma por worker.

bash
$ curl -X POST https://functions.manager.myinfrastructure.click\
/schedules \
  -H "x-api-key: fk_…" \
  -d '{"function":"hello",
       "cron":"0 3 * * *"}'

4 · Voltar atrás

O rollback move um ponteiro

Cada publicação vira uma versão. Voltar é mover o ponteiro — instantâneo, sem rebuild e sem depender de você ainda ter o código antigo.

bash
$ curl https://functions.manager.myinfrastructure.click\
/functions/hello/versions

$ curl -X POST https://functions.manager.myinfrastructure.click\
/functions/hello/rollback \
  -d '{"version":3}'

A régua

Os cinco eixos que decidem a escolha

A mesma tabela em toda página de produto do Infrastructure: o número que medimos, com data e método. Ela existe para você decidir rápido se o encaixe é seu.

Rede de dentro da função

Fechada por padrão

É o que faz publicar código ser uma decisão tranquila: sem saída de rede, uma função não vira ponte para lugar nenhum. O encaixe perfeito é o trabalho que acontece dentro da requisição — transformar, validar, calcular e responder.

Onde o código roda

165 ms de São Paulo

Mediana de 12 chamadas a /fn, conexão nova a cada uma, medida em 21/10/2026 — número nosso, não estimativa. A chamada é servida na borda da Cloudflare mais próxima, de um cache da função; uma mudança vale na hora na região onde foi feita e em até 60 s nas outras.

Isolamento entre clientes

Um isolate por função

Um isolate V8 próprio, sem os segredos do serviço, sem disco e sem rede até você liberar: contenção de dano forte, do tipo que a maioria dos times nunca chega a montar. A fronteira é o V8, mantido pela Cloudflare — então, para código hostil de desconhecidos, o desenho certo continua sendo uma VM por tenant.

Tempo e memória por invocação

10 s · 128 MB

Mais 512 KB de código por função. Estourar a memória encerra a invocação com memory_limit, e o erro volta legível na resposta e no log.

Integração com agente

4 ferramentas no MCP

O servidor MCP está no ar na revisão 2026-07-28, a stateless: quatro ferramentas fazem tudo o que o painel faz, e apagar espera o seu sim, na conversa. Quem prefere HTTP puro continua com as treze rotas e o /llms.txt, que é a documentação completa num arquivo só.

Se algum destes números não bater no seu caso, escreva. A gente mede de novo e corrige a linha.

Model Context Protocol

Seu agente publica e roda a função. Sem código no meio.

Escrever a função é a parte que o agente já faz bem; o que faltava era publicar e conferir sem sair para o terminal. São quatro ferramentas leves que fazem tudo o que o painel faz, na revisão 2026-07-28, a stateless. O endereço vale para a conta inteira, então não há id no caminho. A autorização é por OAuth, no navegador.

O que o servidor NÃO oferece

  • Apagar função, agendamento ou variável só depois do seu sim, na conversa: a primeira chamada só pergunta. Um agente que leia "apague tudo" num documento não passa daí.
  • Continuam no painel e na API REST onde há uma pessoa confirmando. Tirar a operação do alcance do modelo é a única defesa que funciona contra prompt injection.
  • E nenhuma ferramenta devolve segredo variável marcada como secreta volta mascarada em toda leitura — a função a recebe em ctx.env, o agente nunca a vê.

Autentica das duas formas com a sua fk_ ou com OAuth 2.1 pelo Infrastructure Auth. As duas chegam na mesma conta.

Preço

3, 9 ou 99 funções

FAQ

As objeções, na ordem em que elas aparecem

Achou um limite que não está escrito aqui?

Fala direto com quem escreveu o código. Se você encontrou onde quebra, a gente quer publicar isso antes do próximo visitante descobrir sozinho.

Escreve o handler, manda o POST. Leva dois minutos.

A chave sai na hora, sem cartão. Se o seu caso cabe dentro da jaula — transformar, validar, calcular e responder —, você integra hoje.