Criando Google Schedule para Firebase Cloud Function.
Algumas vezes precisamos de processos que rodam de tempos em tempos, isso é natural hoje em dia. Mas como podemos fazer isso?
Foi aí que encontramos uma solução interessante chamada Scheduler, muitos já são familiarizados com esse termo e já temos muitas soluções na “internet”para isso, inclusive soluções gratuitas!
Utilizamos por um tempo uma delas por um longo tempo, porém, decidimos a centralização das nossas ferramentas em uma única plataforma e como usamos o Firebase decidimos migrar tudo para as soluções google.
Caso ainda não conheça o schedule da google, acesse o link :
https://cloud.google.com/scheduler
Porém, como nada é tão simples, tivemos alguns problemas para migrar as nossas cloud functions schedules da ferramenta atual para a Google Cloud Scheduler.
Primeiro que usamos funções Post para nossos schedules enviando formatos JSON no BODY nas requisições em HTTP… e para configurar no google Cloud Scheduler não tem a possibilidade de passar o formato JSON, pois o o mesmo envia o tipo de formatação content-type por padrão como application/octet-stream e não e possível alterar, isso torna o js express incapaz de analisar os dados no corpo da solicitação quando usamos o agendador do cloud para POST na tela de cadastro manual.
Porém, quando usamos a opção de pub/sub das nossas functions, o interpretador da cloud function envia a formatação content-type como application/json e o js express e capaz de ler o corpo da chamada.
A forma que usamos para isso segue a seguinte etapa da documentação da google:
Essa forma mantém as nossas atividades centralizadas no nosso código e no visualizador das functions são apresentados no formato schedule, deixando assim de fácil visualização para o monitor de funções, e no código deixou claro quais funções tem a responsabilidade de schedule.
Na visualizacao das Cloud functions, será apresentado o formato schedule:
Dentro do fonte JS, será apresentado também quem é schedule e seu tempo:
Esperamos ter contribuído para sanar mais uma dúvida sobre a formatação do content-type para inserção dos schedules no google cloud scheduler.