Configuração
Defina schedules de cron diretamente noconfig da sua função. Nenhuma configuração externa é necessária.
index.ts
Testes locais
Inicie o servidor comjelou functions dev. Você pode enviar uma requisição HTTP para a função, mas o guard isCron a rejeitará porque não é um trigger de cron real:
Não é possível simular um trigger de cron real via curl — a plataforma injeta
ctx.isCron e a assinatura criptográfica automaticamente. Para testar a lógica de cron, use createMockContext({ isCron: true }) nos seus testes.Sintaxe
Cada schedule tem dois campos:Formato da expressão
Exemplos comuns
Fusos horários
Use qualquer zona IANA válida:Guard isCron
Sua função pode receber tanto requisições HTTP quanto triggers de cron. Use ctx.isCron para diferenciá-los:
Como funciona
- Você define os schedules em
config.cron - Quando você executa
jelou functions deploy, a plataforma lê sua configuração e cria os schedules - Quando um schedule dispara, sua função recebe uma requisição com
ctx.isCron === trueectx.trigger.croncom a expressão que a acionou - A verificação de assinatura criptográfica impede invocações não autorizadas
Limites
- Máximo de 10 schedules de cron por função
- Exceder esse limite gera um erro em tempo de definição
Gerenciamento
Os schedules são declarativos — são definidos no código e sincronizados a cada deploy. Para modificar um schedule, altereconfig.cron no seu código e faça o redeploy.
Para visualizar os schedules ativos:
Cron multi-tool
Quando você usaapp(), cada ferramenta pode ter seus próprios schedules de cron independentes. As requisições de cron são enviadas para a rota específica de cada ferramenta.
Problemas comuns
- Cron não dispara
- Lógica de cron executa via HTTP
Os schedules de cron são sincronizados no deploy. Se você alterou a expressão cron, precisa fazer o redeploy:Verifique se o schedule está ativo:Se a coluna
Enabled mostrar no, verifique se a expressão cron é válida.