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:| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
expression | string | Sim | Cron padrão de 5 campos |
timezone | string | Não | Fuso horário IANA. Padrão: UTC. |
Formato da expressão
Exemplos comuns
| Expressão | Descrição |
|---|---|
0 9 * * * | Todo dia às 9:00 |
0 9 * * 1-5 | Segunda a sexta às 9:00 |
*/30 * * * * | A cada 30 minutos |
0 0 1 * * | Primeiro dia de cada mês à meia-noite |
0 */2 * * * | A cada 2 horas |
30 14 * * 3 | Quarta-feira às 14:30 |
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.